Так что я делаю в этом случае, когда вы хотите, чтобы различные области были для Администратор, Студент и Советник
Вы можете указать пространство имен для каждой роли или войти в систему, как это
#config/routes.rb
Rails.application.routes.draw do
devise_for :admins, :controllers => { registrations: 'admins/registrations',
sessions: 'admins/sessions',
passwords: 'admins/passwords',
confirmations: 'admins/confirmations'
}
authenticate :admin do
namespace :admins do
....
root :to => 'something#index'
end
end
devise_for : students, :controllers => { registrations: 'students/registrations',
sessions: 'students/sessions',
passwords: 'students/passwords',
confirmations: 'students/confirmations'
}
authenticate :student do
namespace :students do
....
root :to => 'something#index'
end
end
Теперь вы можете создать модель устройства для каждого пространства имен.
#app/controllers/admin_controller.rb
class AdminController < ApplicationController
before_filter :authenticate_admin!
end
Для контроллеров Devise вы можете использовать их как
#app/controllers/users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
end
Для базовых контроллеров приложений вы можете использовать их следующим образом.
#app/controllers/users/somethings_controller.rb
class Users::SomethingsController < UserController
...
end
Я надеюсь, что это поможет вам