2012-07-27 94 views
0

我的JST模板中的幾個select元素依賴於db來填充選項。我可以將導軌部分拉入模板嗎?做這個的最好方式是什麼?主幹JST模板,如何呈現Rails部分

例如部分是這樣的:

_font_faces.html.haml

.font_face 
    = select("font", "style", Font.all.collect {|f| [ f.name, f.id ] }) 

回答

2

這個問題的答案是,你不想把這種邏輯放到你的視圖中去。應該有一個獨立的骨幹集合,一個字體集合,而不是在視圖中調用數據庫。

1

如果你的名字像choices.jst.eco.haml資產管道將編譯文件從倒退文件擴展名。因此,HAML編譯器將首先運行,然後運行ECO編譯器,然後JST gem會將所有已編譯的代碼放入JST對象中,您可以在視圖中引用該對象。

+0

嘿感謝您的答覆。這是做這件事的常見模式嗎?如果你不介意,你知道任何教程或文檔?我不想擾亂應用程序的流程,這聽起來像是我的隊友可能會抱怨的黑客攻擊。但如果這是唯一的方法,我肯定會考慮這樣做。謝謝! – botbot 2012-07-27 20:39:20

+0

@botbot如果您需要在JavaScript模板中運行Ruby代碼,這是一種常見的解決方案。但我也同意,一般來說,數據應該傳遞給視圖/模板,而不是直接訪問它。 – Andrew 2014-09-05 19:02:04