How to include a css or javascript in an erb that is outside the layout?
If you have a generic edit.css file, I would suggest an if in your layout
<%= stylesheet_link_tag 'edit' if params[:action] == 'edit' %>
Otherwise you can use content_for
with a yield
to add additional tags into the 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 -%>
You can add a stylesheet tag inside the head tag of the layout by doing something like this:
layouts/products.html.erb:
<head> ... <%= yield :css %> ... </head>
products/edit.html.erb
<% content_for :css do stylesheet_link_tag 'products_edit'end %>
You can't if your </head>
tag is in your layout.
You may want a different layout for that controller action. Like this on the render:
render :action => "index", :layout => "some_other_layout
Also you can set a different default layout for a whole controller with this line in the controller class:
layout "some_other_layout"
Check the API docs, there's some complex things you can do with conditionals on that layout method.