set a layout for certain actions?

前端 未结 2 1234
说谎
说谎 2021-02-02 13:43

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

相关标签:
2条回答
  • 2021-02-02 14:10

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

    0 讨论(0)
  • 2021-02-02 14:28

    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

    0 讨论(0)
提交回复
热议问题