2014-09-24 131 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), 
}