5
我有一個應用程序需要三個用戶類型(用戶,代理,管理員)登錄並需要不同的設計模塊。使用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
此外,這些用戶可能會根據其類型添加其他列。所以,我想根據它們的類型創建不同的表格。
根據我的要求,我決定來處理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
我在routes.rb
下面的代碼:
devise_for :agent_admins, ActiveAdmin::Devise.config
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
這僅適用於admin_users
產生登錄路徑。 如果我在active_admin.rb配置文件中設置了config.default_namespace = :agent
,將生成agent_admin
的登錄路徑,但不生成admin_users
。
所有其他ActiveAdmin路徑通常爲兩個名稱空間生成。
我該如何解決,同時生成處理的login
路徑?