with render_to_string rails from ruby-on-rails view erb

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