初めてのRailsアプリを書いているので、少し初心者の質問で申し訳ありません。
レイアウトビューのアイデアはわかりましたが、それらを使用している場合、ビュー固有のjsまたはcssファイルを含める方法はありますか? たとえば、 がlayouts/products.html.erbあり、 が必要ですが、すべての製品ビューにその CSS を使用しproducts/edit.html.erbたくproducts_edit.cssない場合、それを達成するためのベスト プラクティスは何ですか?
初めてのRailsアプリを書いているので、少し初心者の質問で申し訳ありません。
レイアウトビューのアイデアはわかりましたが、それらを使用している場合、ビュー固有のjsまたはcssファイルを含める方法はありますか? たとえば、 がlayouts/products.html.erbあり、 が必要ですが、すべての製品ビューにその CSS を使用しproducts/edit.html.erbたくproducts_edit.cssない場合、それを達成するためのベスト プラクティスは何ですか?
一般的な edit.css ファイルがある場合は、レイアウトに if を含めることをお勧めします
<%= stylesheet_link_tag 'edit' if params[:action] == 'edit' %>
それ以外の場合は、 a を使用content_forしyieldて追加のタグを head に追加できます。
layout.html.erb
<head>
...
<%= yield(:header) if @content_for_header %>
</head>
products/edit.html.erb
<% content_for :header do -%>
<%= stylesheet_link_tag 'edit_product' %>
<% end -%>
次のようにして、レイアウトの head タグ内に stylesheet タグを追加できます。
レイアウト/products.html.erb:
<頭>
...
<%= 利回り :css %>
...
</head>
Products/edit.html.erb
<% content_for :css do
stylesheet_link_tag 'products_edit'
終了 %>
</head>タグがレイアウトにある場合はできません。
そのコントローラー アクションに別のレイアウトが必要になる場合があります。レンダリングで次のようにします。
render :action => "index", :layout => "some_other_layout
また、コントローラー クラスで次の行を使用して、コントローラー全体に別のデフォルト レイアウトを設定することもできます。
layout "some_other_layout"
API ドキュメントを確認してください。そのレイアウト メソッドの条件で実行できる複雑な処理がいくつかあります。