JSTテンプレートのいくつかのselect要素は、dbに依存して選択肢を設定します。レールの一部をテンプレートに引き込むことはできますか?これを行うための最良の方法は何ですか?
たとえば、次のような部分的なものです。
_font_faces.html.haml
.font_face
= select("font", "style", Font.all.collect {|f| [ f.name, f.id ] })
JSTテンプレートのいくつかのselect要素は、dbに依存して選択肢を設定します。レールの一部をテンプレートに引き込むことはできますか?これを行うための最良の方法は何ですか?
たとえば、次のような部分的なものです。
_font_faces.html.haml
.font_face
= select("font", "style", Font.all.collect {|f| [ f.name, f.id ] })
この質問への答えは、とにかくその種のロジックをビューに入れたくないということです。ビュー内のdbの呼び出しではなく、別のバックボーンコレクション(フォントコレクション)が作成されている必要があります。
choices.jst.eco.hamlのような名前を付けると、アセットパイプラインはファイル拡張子から逆方向にファイルをコンパイルします。したがって、HAMLコンパイラが最初に実行され、次にECOコンパイラが実行され、次にJST gemが、ビューで参照できるJSTオブジェクトにコンパイルされたすべてのコードをスローします。