我有一个应用程序需要三个用户类型(用户,代理,管理员)登录并需要不同的设计模块.
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| …Run Code Online (Sandbox Code Playgroud)