2012-11-13 17 views
5

私のユーザーモデルにDeviseを使用しています。私はAdminAdserモデルのためにDeviseも使用しているActiveAdminを使用しています。Deviseでユーザーにログアウトすると、AdminUserからもログアウトします

私はadmin_userとユーザーを互いに独立して使用してサインインできますが、ユーザーにサインアウトするとAdminUserもログアウトされています。それを逆にしてAdminUserから最初にサインアウトすると、同じことが起こります。

どうすればこの問題を回避できますか?

routes.rbを

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

ApplicationControllerに

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 

答えて

7

あなたが探していることはsign_out_all_scopes

ときにユーザーがサインアウトして、すべて、trueに設定されていると呼ばれる工夫構成ですあなたのケースでは、このユーザー(ユーザーと管理者の両方)のスコープがログアウトされます。

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

+1

私はそれをfalseに設定することを意味すると思います。 trueはデフォルト値ですから。 値を 'false'に設定すると、現在のスコープからのみサインアウトされます。 – jvanbaarsen

関連する問題