web-dev-qa-db-ja.com

レイアウトの外にあるerbにCSSまたはJavaScriptを含める方法は?

最初のRails app。

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

26
Matt Briggs

一般的なedit.cssファイルがある場合、レイアウトにあるかどうかをお勧めします

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

それ以外の場合は content_foryieldを使用して、ヘッドにタグを追加します。

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 -%>
47
Samuel

次のようにして、レイアウトのヘッドタグ内にスタイルシートタグを追加できます。

layouts/products.html.erb:

 
 <head> 
 ... 
 <%= yield:css%> 
 ... 
 </ head > 
 

products/edit.html.erb

 
 <%content_for:css do 
 stylesheet_link_tag 'products_edit' 
 end%> 
 
10
erik