Tôi có một ứng dụng yêu cầu ba loại Người dùng (Người dùng, Đại lý, Quản trị) với thông tin đăng nhập và yêu cầu các mô-đun lập khác nhau.Xử lý nhiều hơn một kiểu quản trị đăng nhập với 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
Những người dùng này có thể có thêm cột dựa trên loại của họ. Vì vậy, tôi muốn tạo các bảng khác nhau dựa trên loại của chúng.
Tùy thuộc vào yêu cầu của tôi, tôi quyết định để xử lý AgentAdmin
và AdminUser
với ActiveAdmin với namespace khác nhau (quản trị cho AdminUser
, đại lý cho AgentAdmin
). Tôi đã định cấu hình authentication_method
, current_user_method
và logout_link_path
cho cả hai không gian tên này như dưới đây.
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
Tôi có đoạn code sau trong routes.rb
tôi:
devise_for :agent_admins, ActiveAdmin::Devise.config
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
này tạo ra đường dẫn đăng nhập chỉ cho admin_users
. Nếu tôi đặt config.default_namespace = :agent
trong tệp cấu hình active_admin.rb, đường dẫn đăng nhập cho agent_admin
được tạo, nhưng không phải là admin_users
.
Tất cả các đường dẫn ActiveAdmin khác được tạo bình thường cho cả hai không gian tên.
Làm cách nào để giải quyết, để tạo cả hai đường dẫn login
được xử lý bởi activedmin
?