2012-08-16 15 views
5
belongs_to

मैं इन संगठनों के लिए प्रपत्र को अनुकूलित:ActiveAdmin

class Course < ActiveRecord::Base 
    has_many :signup 
    has_many :user, :through => :signup 

    accepts_nested_attributes_for :signup 
end 

class User < ActiveRecord::Base 
    has_many :signup 
    has_many :course, :through => :signup 

    accepts_nested_attributes_for :signup 
end 

class Signup < ActiveRecord::Base 
    belongs_to :course 
    belongs_to :user 
end 
अब

, मैं "पंजीकरण के लिए" ActiveAdmin प्रपत्र अनुकूलित करने के लिए चाहते हैं, तो यह पाठ्यक्रम के शीर्षक और उन के नाम से पता चलता एक टेक्स्टफील्ड के रूप में चयन के रूप में नहीं।

डिफ़ॉल्ट रूप पहले से ही ऐसा करता है, हालांकि मुझे फॉर्म को और अनुकूलित करने की आवश्यकता है और मैं डिफ़ॉल्ट रूप को पुन: उत्पन्न नहीं कर सकता।

उत्तर

6

आपका प्रपत्र ब्लॉक में कुछ इस तरह दिखेगा अपने admin/signups.rb:

form do |f| 
    f.input :course 
    t.input :user 
end 

डिफ़ॉल्ट रूप से, के बाद से course और user संघों कर रहे हैं, यह आप एक collection_select देना चाहिए - कि, एक है की name विशेषता के साथ अपने लेबल के रूप में मॉडल, id एस मान के रूप में। यदि आपने अपना input एक इनपुट प्रकार पारित किया है, तो यह उन्हें उस प्रकार के रूप में प्रदर्शित करने के लिए मजबूर करेगा।

form do |f| 
    f.input :course, :as => :string 
end 

यह सिर्फ आप एक course_id पाठ इनपुट क्षेत्र है, जहां आप शायद सिर्फ जुड़े वस्तु के लिए आईडी दर्ज करेंगे दे देंगे। "डिफ़ॉल्ट रूप को पुन: उत्पन्न करने" के लिए, प्रासंगिक विशेषताओं के लिए बस input s जोड़ना जारी रखें। आप उन्हें समूह बनाने और उन्हें सुंदर दिखने के लिए f.inputs में भी लपेट सकते हैं।

form do |f| 
    f.inputs "Basic Details" do 
     f.input :course 
     f.input :user 
    end 
end 
संबंधित मुद्दे