두 개의 범위가있는 단일 사용자 모델을 사용하여 단일 응용 프로그램에서 Devise 설정을 마쳤으므로 /admin/login
과 일반 /users/login
경로를 가질 수 있습니다. 이 꽤 잘 작동, 내 설정/routes.rb 파일은 다음과 같습니다 :이 꽤 벌금과 멋쟁이 작동CanCan 및 Devise, 역할 기반 로그인 제한
devise_for :users,
:path_names => { :sign_in => 'login', :sign_out => 'logout' }
devise_for :admins,
:class_name => 'User',
:skip => [:passwords, :registrations, :confirmations, :sessions],
:controllers => { :sessions => 'admin/sessions' } do
get 'admin/login' => 'admin/sessions#new', :as => :new_admin_session
post 'admin/login' => 'admin/sessions#create', :as => :admin_session
delete 'admin/logout' => 'admin/sessions#destroy', :as => :destroy_admin_session
end
, 내가 다른 영향을주지 않고 응용 프로그램의 각 측면에 로그인 할 수 있습니다. 즉, 세션 이름은 별도이고 로그인하면 다른 세션에 로그인하지 않습니다.
이제는 Roles
모델과 Ability
모델로 CanCan을 설정하고이를 내 데이터베이스에 정의하고 작동하도록했습니다.
질문 : 내 역할이 해당 영역에 로그인하는 것을 허용하지 않기 때문에 admin/login
에 양식을 작성하고 오류 메시지가 표시되도록하고 싶습니다. 이것을 어떻게 할 수 있습니까?
앱이 cancan에 역할 기반 권한을 요청하는 곳이 있습니다. 그게 어디 있니? 디버거를 사용하는 경우 Ability 모델에 추적을 넣은 다음 호출 한 사람의 백 트레이스를 볼 수 있습니다. 어딘가에 필터가 있습니다. – Amala