2012-09-03 7 views
7

मैं एक बड़ी उत्पादन आवेदन के लिए एक ActiveAdmin एप्लिकेशन पर काम कर रहा हूँ में एक ही मॉडल का उपयोग करें। मैं वर्तमान में दो सक्रियडमिन "इकाइयों" के लिए एक ही मॉडल का उपयोग करने की कोशिश कर रहा हूं।दो सक्रिय व्यवस्थापक वर्गों

तो, मैं

class Person < ActiveRecord::Base 

    scope :special, where(:is_special => true) 
    scope :ordinary, where(:is_special => false) 

end 

मैं की तरह

ActiveAdmin.register Person, :name => "Special People" do 

    # columns, filters for special people 

    controller do 
    def scoped_collection 
     Person.special 
    end 
    end 

end 

ActiveAdmin.register Person, :name => "Ordinary People" do 

    # columns, filters for ordinary people 

    controller do 
    def scoped_collection 
     Person.ordinary 
    end 
    end 

end 

कुछ कर सकते हैं है का कहना है कि (मैं वाक्य रचना थोड़ा यहाँ समझाने के लिए मुझे क्या करना चाहते हैं बना रहा हूं।)

के रूप में ActiveAdmin.register ब्लॉक में परिभाषित

लोगों के दो प्रकार के मेनू आइटम और विभिन्न CRUD इंटरफेस रूप में दिखेगा। वे सिर्फ एक ही अंतर्निहित मॉडल होगा।

+0

आप अपने समाधान की कोशिश की थी? – Fivell

+0

यदि आप अपना कोड निष्पादित करते हैं तो क्या होगा? – monteirobrena

+0

मैं का उपयोग करें: विकल्प के रूप में के रूप में इस प्रकार है: ActiveAdmin.register व्यक्ति, के रूप => "साधारण लोग" यह मेरे लिए काम करता स्थानीय स्तर पर, लेकिन कभी कभी दूर से दोनों घोषणाओं संघर्ष और मार्गों गलत नियंत्रक ले जाते हैं। मैं यह पता लगाने में सक्षम नहीं हूं कि प्रारंभिक प्रक्रिया में यह कहां हो रहा है। – polmiro

उत्तर

4

सक्रिय व्यवस्थापक मॉडल कोड:

ActiveAdmin.register Person, as: "Special People" do 
     scope :Special, default: true do |person| 
     person = Person.special 
     end 

     controller do 
     def scoped_collection 
      Person.special 
     end 
     end 
    end 

    ActiveAdmin.register Person, as: "Ordinary People" do 
     scope :Ordinary, default: true do |person| 
     person = Person.ordinary 
     end 

     controller do 
     def scoped_collection 
      Person.ordinary 
     end 
     end 
    end 
अब मार्गों में

:

match '/admin/special_people/scoped_collection/:id' => 'admin/special_people#scoped_collection' 

match '/admin/ordinary_people/scoped_collection/:id' => 'admin/ordinary_people#scoped_collection' 

ऊपर परिवर्तन के साथ प्रयास करें। उम्मीद है कि यह आपके मुद्दों को हल करेगा। धन्यवाद।

+0

हाय @all, इस 100% काम कर रहा है, धन्यवाद –

+0

पता करने के लिए खुशी है कि यह है कि यह मदद की:) – Swati