Я только что закончил настройку Devise для одного приложения, используя одну модель User с двумя областями действия, поэтому у меня может быть /admin/login
, а также обычный путь /users/login
.Это работает довольно хорошо, мой файл config / rout.rb выглядит следующим образом:
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
Это работает довольно хорошо и просто, я могу войти в каждую сторону приложения, не влияя на другую.То есть имена сеансов разделены, и вход в один не регистрирует вас в другом.
Теперь я настроил CanCan с моей моделью Roles
и моделью Ability
и имеюони определены в моей базе данных и работают.
Вопрос в том, что я хочу иметь возможность заполнить форму на admin/login
и получить сообщение об ошибке, поскольку моя роль не позволяет мне войти в эту область.Как мне это сделать?