ruby-on-rails - from - render rails
Desactivar el diseño para uno de acción (4)
Mi situación: la acción de vista de ReportsController debe mostrar html puro, pero no como un archivo (para verlo en el navegador y guardarlo después). Por lo tanto, para la representación utilizo la plantilla de vista view.html.erb y necesito desactivar cualquier diseño para esta acción. Pero en otras acciones de este controlador, los diseños deben permanecer intactos. Funciona solo para el controlador completo de esta manera:
ReportsController < ApplicationController
layout false
Pero eso lo hace mal :( para todas las acciones intenté usar algo como esto en acción:
def view
@report = Report.new(params[:report])
unless @report.valid?
render :action => ''new'' and return
else
render :layout => false
end
end
¿Que debería hacer?
En el bloque responder, agregue el layout: false
.
Por ejemplo:
respond_to do |format|
format.html { render :layout => false } # your-action.html.erb
end
Prueba esto:
ReportsController < ApplicationController
layout false
layout ''application'', :except => :view
Si desea obtener una plantilla no estándar, sin diseño, puede usar:
def non_rest
render template: ''layouts/something_new'', layout: false
end