繁体   English   中英

Rails中的液体模板4

[英]Liquid templates in rails 4

我试图在我的项目中实现Shopify的液体模板并从数据库中渲染它们。

在使控制器免受过度混乱的同时,最漂亮,最“挑剔”的方式是什么?

    render text: template.render('name' => name).html_safe

对我来说似乎有点丑陋,更不用说可能的继承逻辑了。

我当时处在同样的情况下,想稍微抽象一下逻辑。 我最终遇到了控制器与render_liquid方法有关的问题,该方法注入一些默认的本地render_liquid并注册一个自定义文件系统以查找模板等。它看起来像这样:

def render_liquid(name, locals, registers = {})
  registers[:file_system] = CustomFileSystem.new(self)
  template = registers[:file_system].read_template_file(name)
  Liquid::Template.parse(template).render!(locals, registers: registers)
end

最终,我的控制器仅告诉渲染具有特定本地变量的模板:

render_liquid "page", {
  page: PageDrop(@page),
  chapter: ChapterDrop(@chapter),
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM