My app/views/layouts folder looks like this:
application.html.erb
user_sessions.html.erb
errors.html.erb
These work fine and i have no problems with them but id now like to add a new layout for tips, but only on the index and show actions.
Would "tips.index.html.erb" work?
Add a new layout as you like called 'tips.html.erb'
In the tips controller add the following:
layout "tips", :only => [ :index, :show ]
You can specify the layout for a specific action using:
def new
render(:layout => "layouts/application")
end
I have never tried using multiple layout declarations in a controller. It might be that adding another
layout "standard", :only => [ :new, :edit ]
might work...
If you want to use multiple layout in a controller, use the code below: ( action_name is a pre-defined variable that you could use directly in Rails)
class OrdersController < BaseController
layout :determine_layout
private
def determine_layout
%w(new).include?(action_name) ? "some_layout" : "public"
end
end
see: https://stackoverflow.com/a/5525014/445908
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