sajad torkamani

Assuming we have two different layout files:

We can add the following bit of code in our baseĀ ApplicationController:

class ApplicationController < ActionController::Base
  layout :layout

  private

  def layout
    user_signed_in? ? 'application' : 'guest'
  end
end 

Assuming all our controllers extend ApplicationController as is the default convention, then our views will use the application layout when the user is signed in and the guest layout when they aren’t signed in.

Here, we’re rendering different layouts based on the user’s authentication status but you could use any conditional logic that meets your needs.