[英]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.