【Rails】devise - ログイン・ログアウト後のリダイレクト先をカスタマイズする
内容
Ruby on Railsのgem 'devise'
で
ログイン・ログアウトした後のリダイレクト遷移先のパスの変更の方法
デフォルト設定
devise本家では
デフォルトのログイン・ログインした後のリダイレクト遷移先は
次のように定義されています
いつ | デフォルトの遷移先パス | 遷移先パスを定義しているメソッド |
---|---|---|
ログイン後 (Devise::SessionsController) |
root_path | after_sign_in_path_for(resource) |
ログアウト後 (Devise::SessionsController#respond_to_on_destroy) |
root_path | after_sign_out_path_for(resource) |
カスタマイズ
デフォルトの遷移先パスから変更したい場合は、
ソースコードで定義されている
・after_sign_path_for
メソッド
・after_sign_out_path_for
メソッド
をオーバーライドします
カスタマイズの例
class SessionsController < Devise::SessionsController protected def after_sign_in_path_for(resource) users_path end def after_sign_out_path_for(resource) flash[:notice] = "ログアウトしました" # flashメッセージの追加もできます root_path end end