Sas*_*asi 5 ruby-on-rails devise activeadmin
我有一个应用程序需要三个用户类型(用户,代理,管理员)登录并需要不同的设计模块.
User AgentAdmin AdminUser
confirmable Yes Yes No
lockable Yes Yes No
timeoutable No Yes Yes
Omniauthable Yes No No
database_authenticatable Yes Yes Yes
recoverable Yes Yes No
rememberable Yes Yes No
trackable Yes Yes Yes
validatable Yes Yes Yes
Run Code Online (Sandbox Code Playgroud)
此外,这些用户可以根据其类型添加其他列.所以,我想根据类型创建不同的表.
根据我的要求,我决定来处理AgentAdmin,并AdminUser与ActiveAdmin有不同的命名空间(联系管理员AdminUser,代理AgentAdmin).我已经配置authentication_method,current_user_method并logout_link_path为这两个命名空间,如下.
config.load_paths = [File.join(Rails.root,'app','admin'), File.join(Rails.root,'app','agent')]
config.namespace :admin 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 :agent do |agent|
agent.authentication_method = :authenticate_agent_admin!
agent.current_user_method = :current_agent_admin
agent.logout_link_path = :destroy_agent_admin_session_path
end
Run Code Online (Sandbox Code Playgroud)
我的代码中包含以下代码routes.rb:
devise_for :agent_admins, ActiveAdmin::Devise.config
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
Run Code Online (Sandbox Code Playgroud)
这仅生成登录路径admin_users.如果我config.default_namespace = :agent在active_admin.rb配置文件中设置,agent_admin则会生成登录路径,但不会生成admin_users.
所有其他ActiveAdmin路径都是为两个命名空间正常生成的.
如何解决,生成两个login处理的路径activedmin?
Sas*_*asi 13
devise_for :agent_admins, ActiveAdmin::Devise.config.merge({path: '/agent'})
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |