I understand I can call the render
method with layout: 'my_layout'
to change the layout within a controller method. However, some of my controller methods have the following so that I can easily render JSON as well:
respond_to do |format|
format.html
format.json { render json: @cars }
end
How do I change the layout for format.html
? Should I replace format.html
with render layout: 'my_layout'
? Is there an option I can pass to format.html
?
By default Rails will use app/views/layouts/application.html.erb
as the layout. If you want to use another layout, create app/views/layouts/my-new-layout.html.erb
then
In your controller method:
respond_to do |format|
format.html { render layout: 'my-new-layout' }
format.json { render json: @cars }
end
Here's the relevant section in the Rails Guide: Layouts and Rendering: Options for Render
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With