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