たとえばユーザが一般ユーザか管理ユーザかとか、多言語対応してたりしてる時に同一controllerだけど異なるlayoutを呼び出したいときある。そんな時はこうするのがいいみたい。
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def determine_layout
if is_admin?
"admin"
else
"application"
end
end
app/controllers/some_controller.rb
class ApplicationController < ApplicationController
layout :determine_layout
...
end
参考:http://apidock.com/rails/ActionController/Layout/ClassMethods/layout