管理者とユーザーでのログイン機能が存在し、別モデルで管理したい場合、Devise を使うとscoped_views
をtrueにすれば簡単に実装できる。(参考:Ruby - Railsでdeviseひとつで複数モデルを管理しよう - Qiita)
しかし、デフォルトの場合 Devise のログアウトは全てのスコープでログアウトしてしまう。つまり管理者とユーザーでログインしていた場合、管理者としてログアウトすると同時にユーザーとしてもログアウトしてしまう
これを防ぎたい場合、config/initializers/devise.rb
にて config.sign_out_all_scopes = false
としてやればよい。
初期状態ではこの設定はコメントアウトされているので、コメントアウトを外しfalseに設定するだけで、スコープごとのサインアウトが実装できる。
テストコード込みのサンプルコードはこんな感じ。
0 件のコメント :
コメントを投稿