【rails】deviseを使った時の共通レイアウト部分の変更方法
railsでdeviseで作成したviewに対してlayout/application.html.erb以外の共通レイアウトを使いたい場合の指定方法を調べたので記事にします。
(例えばapplication.html.erbに共通のヘッダーやフッターなどを指定しているが、ログインや新規登録画面では表示させたくない場合など)
ステップ1
例えばapp/views/layoutsディレクトリ以下にapplication.html.erbの代わりになるようなsub-layout.html.erbといったファイルを作成します。(名前は何でもいいです)
ステップ2
次にapp/controllers/application_controller.rbに以下のように記述をするだけになります。
class ApplicationController < ActionController::Base layout :layout_by_resource protected def layout_by_resource if devise_controller? "sub-layout" else "application" end end end
これで作業完了です。
すごく簡単なので初心者がスピードあげて実装できるように簡単な記事どんどん書いていこうと思います。