2014-09-24 92 views
0

我试着去实现我的项目Shopify的液体模板&从数据库中呈现它们。液体模板4

什么是最漂亮最&“railsy”这样做,同时保持我的控制器过度杂乱的方式是什么?

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

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

+2

看起来你可以阅读'卡夫丁轨道4 Application'第3章第39页。'从自定义Stores' – IS04 2014-09-24 05:18:30

+0

有用的评论获取视图模板。 – 2014-09-24 06:02:12

+0

@toninoj做这项工作?你可以在你的项目上使用Shopify的模板吗? – 2014-12-23 12:41:51

回答

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), 
}