导轨4中的液体模板

时间:2014-09-24 05:09:15

标签: ruby-on-rails ruby ruby-on-rails-4 liquid

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

什么是最漂亮的&大多数" railsy"这样做的方式,同时保持我的控制器免于过度混乱?

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

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

1 个答案:

答案 0 :(得分:0)

我处于同样的情况,想要稍微抽象一下逻辑。我最终得到了一个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),
}