2011-12-15 12 views
6

तो मैं अपने रूपों के निर्माण के लिए simple_form का उपयोग कर रहा हूं, हालांकि यह एक आवश्यकता नहीं है।मैं संग्रह_check_boxes को ऐरे के साथ कैसे उपयोग करूं?

जो मैं करने की कोशिश कर रहा हूं वह सरल_फॉर्म संग्रह_check_boxes का उपयोग कर रहा है और इसे एक सरणी पास कर रहा है।

मैं configatron में मेरे टैग भंडारण कर रहा हूँ:

configatron.tags = [{:name => "wheels", :tagtype => "property"}, {:name => "roof", :tagtype => "property"}, {:name => "doors", :tagtype => "property"}] 

यहाँ मेरी टैग मॉडल है:

<%= f.collection_check_boxes :tags, @tags, @tags.map{|tag| tag.name}, @tags.map{|tag| tag.name} %> 

जहां @tags है:

class Tag 
    include Mongoid::Document 
    embedded_in :taggable, polymorphic: true 

    field :name 
    field :tagtype 
end 

यहाँ मैं क्या कोशिश की है है नियंत्रक

में configatron.tags पर सेट करें

मैं बस संग्रह_check_boxes काम करना चाहता हूं और फिर pre_save टैग को बनाने और वर्तमान संसाधन में एम्बेड करना चाहता हूं।

मैंने कहीं पढ़ा है कि आप पास किए गए संग्रह में मानचित्र कर सकते हैं और उस संग्रह की किसी वस्तु की सामग्री चुन सकते हैं। अगर मुझे यह सही लगता है, तो value_method को ओवरराइड करें? याद नहीं है कि आप यह कैसे कर सकते हैं। मैं इस संसाधन :collection => resource.tags के वर्तमान टैग में भी पास करना चाहता हूं ताकि इन टैग को प्रतिपादन पर चेक किया जा सके।

क्या ऐसा करने का कोई तरीका है? यह संभव बनाने के लिए मैं form_builder का उपयोग कैसे करूं, यदि हां, तो कैसे? क्या मुझे एक और दृष्टिकोण लेना चाहिए?

सिडेनोटे: इस कार्यक्षमता को रीढ़ की हड्डी के साथ भी काम करना चाहिए, कुछ स्थानों में रीडबोन टैग जोड़ने के लिए उपयोग किया जाएगा।

उत्तर

3

simple-form docs की जाँच के बाद, मुझे लगता है कि आप इस तरह के रूप में collection_check_boxes

को value_method और प्रतीकों के रूप में label_method में पारित करने के लिए की जरूरत है:

<%= f.collection_check_boxes :tags, @tags, :name, :name %> 

कि काम करता है?

5

एक Array साथ collection_check_boxes उपयोग कैसे करें:

FRUITS = [[1, 'Abiu'], [2, 'Açaí'], [3, 'Assai'], [4, 'Acreola']] 

<%= f.collection_check_boxes :fruits, FRUITS, :first, :last %> 
संबंधित मुद्दे