我的JST模板中的幾個select元素依賴於db來填充選項。我可以將導軌部分拉入模板嗎?做這個的最好方式是什麼?主幹JST模板,如何呈現Rails部分
例如部分是這樣的:
_font_faces.html.haml
.font_face
= select("font", "style", Font.all.collect {|f| [ f.name, f.id ] })
我的JST模板中的幾個select元素依賴於db來填充選項。我可以將導軌部分拉入模板嗎?做這個的最好方式是什麼?主幹JST模板,如何呈現Rails部分
例如部分是這樣的:
_font_faces.html.haml
.font_face
= select("font", "style", Font.all.collect {|f| [ f.name, f.id ] })
這個問題的答案是,你不想把這種邏輯放到你的視圖中去。應該有一個獨立的骨幹集合,一個字體集合,而不是在視圖中調用數據庫。
如果你的名字像choices.jst.eco.haml資產管道將編譯文件從倒退文件擴展名。因此,HAML編譯器將首先運行,然後運行ECO編譯器,然後JST gem會將所有已編譯的代碼放入JST對象中,您可以在視圖中引用該對象。
嘿感謝您的答覆。這是做這件事的常見模式嗎?如果你不介意,你知道任何教程或文檔?我不想擾亂應用程序的流程,這聽起來像是我的隊友可能會抱怨的黑客攻擊。但如果這是唯一的方法,我肯定會考慮這樣做。謝謝! – botbot 2012-07-27 20:39:20
@botbot如果您需要在JavaScript模板中運行Ruby代碼,這是一種常見的解決方案。但我也同意,一般來說,數據應該傳遞給視圖/模板,而不是直接訪問它。 – Andrew 2014-09-05 19:02:04