Ruby on rails 如何为活动管理员命名空间设计两种身份验证模型/路由
我有一个ActiveAdmin实例,它只为我的公司用户提供管理员服务。后来,我们需要我们的客户来管理其他一些型号。在activeadmin部分,它看起来很简单。我刚刚创建了一个单独的名称空间,它工作了。当我试图创建两个不同的登录端点时,事情变得复杂起来 这是my routes.rb文件:Ruby on rails 如何为活动管理员命名空间设计两种身份验证模型/路由,ruby-on-rails,devise,activeadmin,Ruby On Rails,Devise,Activeadmin,我有一个ActiveAdmin实例,它只为我的公司用户提供管理员服务。后来,我们需要我们的客户来管理其他一些型号。在activeadmin部分,它看起来很简单。我刚刚创建了一个单独的名称空间,它工作了。当我试图创建两个不同的登录端点时,事情变得复杂起来 这是my routes.rb文件: scope '/admin' do devise_for :admin_users, ActiveAdmin::Devise.config devise_for :client_admins, Acti
scope '/admin' do
devise_for :admin_users, ActiveAdmin::Devise.config
devise_for :client_admins, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
end
问题是:activeadmin使用默认名称空间(管理员用户的名称空间)生成路由。有没有一种方法可以在不为客户端管理员重写和编写自己的身份验证控制器的情况下执行此操作?我认为这是不可能的: 我将使用rolify和cancancan创建一个
:admin
和:client
角色
这是可能的
routes.rb
Rails.application.routes.draw do
devise_for :admin_users, ActiveAdmin::Devise.config
devise_for :teachers, ActiveAdmin::Devise.config.merge(:path => :admin)
ActiveAdmin.routes(self)
root 'application#root'
end
config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
config.site_title = "Admin"
config.default_namespace = :superadmin
config.namespace :superadmin do |admin|
admin.authentication_method = :authenticate_admin_user!
admin.current_user_method = :current_admin_user
admin.logout_link_path = :destroy_admin_user_session_path
end
config.namespace :admin do |admin|
admin.authentication_method = :authenticate_teacher!
admin.current_user_method = :current_teacher
admin.logout_link_path = :destroy_teacher_session_path
admin.root_to = 'dashboard#index'
end
end
Rails 5.0.0.1、Devision 4.2.0、ActiveAdmin 1.0.0.pre4我认为对于教师的Devision_,ActiveAdmin::Devision.config.merge(:path=>:admin)路径不能是admin,它将类似于path::xyz@cross