gem’devise’で複数モデルでのログイン後のパス渡しについて

コード・問題解消

複数のdeviseモデルがあってそれぞれのログイン後のリダイレクト先を設定したい時

今回なにかの投稿サイトを作ることになり、admin(管理者側)とuser(顧客側)に分けたとします。

スポンサーリンク

前提として

deviseモデルとして、AdminモデルとUserモデルがあるとします。

Adminのログイン後のリダイレクト先はadmins_home_pathにしたい

Userのログイン後のリダイレクト先はusers_home_pathにしたい

やり方は色々とあると思うのですが、記事を見ていて簡単だなと思ったところを参考に。Controller/ApplicationControllerにafter_sign_in_path_forをオーバーライドしていきます。

def after_sign_in_path_for(resource)
  case resource
  when Admin
    admins_home_path
  when User
    users_home_path
  end
end

パスの所はrails routes等でパス渡しを参考にしてくださいね。

コメント

タイトルとURLをコピーしました