Railsのdeviseでactionごとにlayoutを変える


状況

/user/sing_upと/user/settingで別のlayoutを指定したい

方法

How To: Create custom layouts

ここにdeviseでlayout変更の方法が書いてある。けどlayout onlyをそれぞれ書いても1行目しか実行されないのでアクションごとの指定ができない。

registrations_controller.rbにメソッド追加する。

private
def set_registrations_layout
  if action_name == 'new'
    "hoge"
  else
    "huga"
  end
end

で、

layout :select_layout

を指定すればオーケー