2012-04-09 20 views
10

पर simple_form मणि का उपयोग करके एक ऑप्टग्रुप बनाना सरल_फॉर्म 2.0 में http://simple-form.plataformatec.com.br/#usage/collections पर grouped_select सुविधा पर बस थोड़ा सा प्रलेखन प्रतीत होता है। दस्तावेज लाइन प्रदान करता है:रेलवे 3.2

f.input :country_id, :collection => @continents, :as => :grouped_select, :group_method => :countries 

लेकिन ऐसा लगता है कि यह मुझे काम करने के लिए पर्याप्त संदर्भ नहीं दे रहा है। मेरे पास यह है।

मैं तीन मॉडल है: पूछताछ, विज्ञापन, और निवेशन

विज्ञापन has_many निवेशन, और निवेशन belongs_to विज्ञापन निवेशन belongs_to जांच, और निवेशन has_many पूछताछ

यह लटकती पूछताछ देखने के लिए है। सरल_फॉर्म का उपयोग करके मैं ड्रॉपडाउन में विज्ञापन शीर्षकों की सूची कम से कम आउटपुट करने के लिए = f.input :insertion, :collection => @ads प्राप्त कर सकता हूं। मैं ad.title को optgroup के रूप में सेवा करना चाहता हूं।

<select> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
    <optgroup label="Ad.Title"> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    <option value="Ad.Insertion.id">Ad.Insertion.Title</option> 
    </optgroup> 
</select> 

किसी को भी इस simple_form सुविधा काम करने पर कोई सलाह दे सकते हैं: तो फिर मैं कुछ की तरह चयन सामग्री के रूप में सेवा करने के लिए विज्ञापन सम्मिलन करना चाहते हैं ... तो? मैं वास्तव में इसकी सराहना करता हूं!

अगर आपको इस संपत्ति को निष्पादित करने के तरीके पर अंतर्दृष्टि है तो मैं आपको ऐप के बारे में कुछ और बता सकता हूं।

अग्रिम धन्यवाद!

अद्यतन: मैं आंशिक रूप से का उपयोग कर काम कर रहे कुछ प्राप्त करने में सक्षम किया गया है:

= f.input(:insertion_id, :collection => Ad.order(:name), :as => :grouped_select, :group_method => :insertions) 

इस के साथ समस्या क्या स्तंभ मैं क्या बता सकता से प्रदर्शन पाठ के रूप में प्रयोग किया जाता है निर्दिष्ट करने के लिए कोई रास्ता नहीं है कि वहाँ है । मैं किसी भी इनपुट का स्वागत करता हूँ।

उत्तर

20

कुछ अतिरिक्त शोध के बाद, प्रलेखन में बेहतर लग रहा है, और वाक्यविन्यास के साथ खेलना मैंने जो हल किया है उसे हल किया है।

मानक रेल grouped_collection_select इस तरह दिखता है:

= f.grouped_collection_select(:insertion_id, Ad.order(:name), 
           :insertions, :name, :id, :title, 
           include_blank: "Please Choose...") 

यह simple_form 2.0 निम्न सिंटैक्स के साथ प्रयोग करने में पुन: किया जा सकता है:

= f.input(:insertion_id, :collection => Ad.order(:name), 
         :as => :grouped_select, 
         :group_method => :insertions, 
         :group_label_method => :name, 
         :label_method => :title, 
         :include_blank => "Please Choose...") 

मुझे आशा है कि भविष्य में अन्य लोगों को मदद मिलती है।

+0

मेरे गधे सहेजा गया। धन्यवाद! : डी –

0

एक वैकल्पिक पद्धति है:

<%= f.input :product_category do %> 
    <%= f.select :product_category, grouped_options_for_select(Product.PRODUCT_CATEGORY), include_blank: true %> 
    <% end %> 

यह अच्छी तरह से काम करता है जब आप एक optgroup सक्रिय रिकॉर्ड क्रियार्थ द्योतक के उपयोग के बिना चयन के लिए फार्म करने की कोशिश कर रहे हैं।

संदर्भ: https://github.com/plataformatec/simple_form#wrapping-rails-form-helpers और http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select