The trick to choose multiple layouts for the same controller is to define the layout as a method and then choose the layout depending on the
action_name. Here’s the sample code for a controller which uses the layout
site-index for the action
index and the layout
site for rest of the actions.
class SiteController < ApplicationController def index end def about end def help end layout :choose_layout def choose_layout if action_name == 'index' return 'site-index' else return 'site' end end end