5

User モデルに Devise を使用しています。AdminUserモデルにもDeviseを使用しているActiveAdminも使用しています。

admin_user とユーザーを別々に使用してサインインできますが、ユーザーをサインアウトすると、AdminUser もサインアウトされることに気付きました。それを逆にして最初に AdminUser をサインアウトすると、同じことが起こります。

うまくいけばこれを回避するにはどうすればよいですか?

ルート.rb

devise_for :admin_users, ActiveAdmin::Devise.config
devise_for :users
get "dashboard/home"

アプリケーションコントローラー

protected

def after_sign_in_path_for(resource)
  if resource.is_a?(User)
    stored_location_for(:user) || dashboard_home_path
  elsif resource.is_a?(AdminUser)
    stored_location_for(:admin_user) || admin_root_path(resource)
  end
end
4

1 に答える 1

7

あなたが探しているのは、呼ばれるDevise構成ですsign_out_all_scopes

ユーザーがサインアウトし、それがtrueに設定されている場合、このユーザーのすべてのスコープがサインアウトされます。この場合、ユーザーと管理者の両方です。

devise.rb で sign_out_all_scopes を検索し、その値を true に変更します。

于 2012-11-13T11:28:45.073 に答える