Posted at

[Rails]条件によって異なるlayoutを使い分けたいとき

More than 5 years have passed since last update.

たとえばユーザが一般ユーザか管理ユーザかとか、多言語対応してたりしてる時に同一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