私は、ログインしていて異なる開発モジュールが必要な3つのユーザータイプ(ユーザー、エージェント、管理者)が必要なアプリケーションを持っています。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
さらに、これらのユーザーは、そのタイプに基づいて追加の列を持つことがあります。したがって、私はそれらのタイプに基づいて異なるテーブルを作成したいと思います。
は私の要件に応じて、私は別の名前空間(AdminUser
ための管理者、AgentAdmin
剤)とのActiveAdminでAgentAdmin
とAdminUser
を処理することにしました。これらの両方のネームスペースに対して、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
の両方のパスを生成し、activedmin
で処理することができますか?