2013-10-16 7 views
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 

आगे इन उपयोगकर्ताओं के पास उनके प्रकार के आधार पर अतिरिक्त कॉलम हो सकते हैं। इसलिए, मैं उनके प्रकार के आधार पर अलग-अलग टेबल बनाना चाहता हूं।

मेरी आवश्यकताओं के आधार पर, मैं अलग नेमस्पेस (AdminUser के लिए व्यवस्थापक, AgentAdmin के लिए एजेंट) के साथ ActiveAdmin साथ AgentAdmin और AdminUser संभाल करने का निर्णय लिया। मैं नीचे के रूप में इन दोनों नामस्थान के लिए authentication_method, current_user_method और logout_link_path कॉन्फ़िगर किया है।

devise_for :agent_admins, ActiveAdmin::Devise.config 
devise_for :admin_users, ActiveAdmin::Devise.config 
ActiveAdmin.routes(self) 

यह केवल admin_users के लिए प्रवेश पथ उत्पन्न करता है:

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 में निम्न कोड की है। अगर मैं active_admin.rb कॉन्फ़िग फ़ाइल में config.default_namespace = :agent निर्धारित करते हैं, agent_admin के लिए प्रवेश पथ उत्पन्न, लेकिन नहीं admin_users है।

अन्य सभी ActiveAdmin रास्तों दोनों नामस्थान के लिए सामान्य रूप से उत्पन्न होता है।

मैं कैसे हल कर सकते हैं, दोनों login रास्तों activedmin द्वारा नियंत्रित उत्पन्न करने के लिए?

उत्तर

10
devise_for :agent_admins, ActiveAdmin::Devise.config.merge({path: '/agent'}) 
devise_for :admin_users, ActiveAdmin::Devise.config 
ActiveAdmin.routes(self) 

इस मुद्दे को हल किया गया।

संबंधित मुद्दे