26

初めてのRailsアプリを書いているので、少し初心者の質問で申し訳ありません。

レイアウトビューのアイデアはわかりましたが、それらを使用している場合、ビュー固有のjsまたはcssファイルを含める方法はありますか? たとえば、 がlayouts/products.html.erbあり、 が必要ですが、すべての製品ビューにその CSS を使用しproducts/edit.html.erbたくproducts_edit.cssない場合、それを達成するためのベスト プラクティスは何ですか?

4

3 に答える 3

47

一般的な edit.css ファイルがある場合は、レイアウトに if を含めることをお勧めします

<%= stylesheet_link_tag 'edit' if params[:action] == 'edit' %>

それ以外の場合は、 a を使用content_foryieldて追加のタグを 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 -%>
于 2009-01-26T16:32:03.877 に答える
10

次のようにして、レイアウトの head タグ内に stylesheet タグを追加できます。

レイアウト/products.html.erb:

    <頭>
        ...
        <%= 利回り :css %>
        ...
    </head>

Products/edit.html.erb

<% content_for :css do
    stylesheet_link_tag 'products_edit'
終了 %>

于 2009-01-26T16:32:27.933 に答える
-7

</head>タグがレイアウトにある場合はできません。

そのコントローラー アクションに別のレイアウトが必要になる場合があります。レンダリングで次のようにします。

 render :action => "index", :layout => "some_other_layout

また、コントローラー クラスで次の行を使用して、コントローラー全体に別のデフォルト レイアウトを設定することもできます。

layout "some_other_layout"

API ドキュメントを確認してください。そのレイアウト メソッドの条件で実行できる複雑な処理がいくつかあります。

于 2009-01-26T16:26:58.757 に答える