ruby-on-rails - render_to_string - view rails
¿Cómo incluir un css o javascript en un erb que está fuera del diseño? (3)
Perdón por la pregunta un poco inocente, ya que estoy escribiendo mi primera aplicación de rieles.
Me da la idea de la vista de diseño, pero si los está utilizando, ¿hay alguna forma de incluir un archivo js o css específico? Por ejemplo, tengo layouts/products.html.erb
, y para products/edit.html.erb
quiero products_edit.css
, pero no quiero ese CSS para todas las vistas de productos, ¿cuál es la mejor práctica para lograr eso?
No puede si su etiqueta </head>
está en su diseño.
Es posible que desee un diseño diferente para esa acción del controlador. Me gusta esto en el render:
render :action => "index", :layout => "some_other_layout
También puede establecer un diseño predeterminado diferente para un controlador completo con esta línea en la clase de controlador:
layout "some_other_layout"
Verifique los documentos API, hay algunas cosas complejas que puede hacer con condicionales en ese método de diseño.
Si tiene un archivo genérico edit.css, sugeriría un si en su diseño
<%= stylesheet_link_tag ''edit'' if params[:action] == ''edit'' %>
De lo contrario, puede usar content_for
con un yield
para agregar etiquetas adicionales al encabezado.
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 -%>
Puede agregar una etiqueta de hoja de estilo dentro de la etiqueta principal del diseño haciendo algo como esto:
layouts / products.html.erb:
<head> ... <%= yield :css %> ... </head>
productos / edit.html.erb
<% content_for :css do stylesheet_link_tag ''products_edit'' end %>