2012-07-27 59 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