2012-03-05 16 views
7

मैंजोड़ना अतिरिक्त एचटीएमएल विशेषताओं के लिए एक रेल collection_select

f.collection_select :country_id, Country.all, :id, :name) 

जो उत्पन्न करता है

<select name="user[country_id]" id="user_country_id">  
<option value="1">Canada</option> 
<option value="2">United Kingdom</option> 
<option value="3" >United States</option> 
</select> 

मैं एक प्रांत-वैल का चयन करने के लिए कोड-वैल विशेषता शामिल करना चाहते हैं का उपयोग कर रहा तो मैं

<select name="user[country_id]" id="user_country_id">  
<option prov-val="Province/Territory" code-val="Postal Code" value="1">Canada</option> 
<option prov-val="County" code-val="Postcode" value="158">United Kingdom</option> 
<option prov-val="State" code-val="ZIP Code" value="2" >United States</option> 

012: गतिशील प्रांत लेबल अद्यतन कर सकते हैं

क्या यह संग्रह_ चयन का उपयोग कर संभव है?

+0

[रेल 'collection_select सहायक विधि और अंत में "आइटम बनाएं" विकल्प] (के संभावित डुप्लिकेट http://stackoverflow.com/questions:

यह बजाय एक उदाहरण चर का उपयोग करने के लिए बेहतर है/699165/रेल-संग्रह-चयन-सहायक-विधि-और-निर्माण-आइटम-विकल्प-अंत-अंत में) –

+0

माफी माँगने के बाद मैंने गलत शीर्षक के साथ प्रश्न सबमिट किया क्योंकि मैंने उपर्युक्त प्रश्न टेम्पलेट के रूप में उपयोग किया था। – patrickandroid

उत्तर

10

सुनिश्चित नहीं हैं कि अगर यह collection_select का उपयोग कर सकता है, लेकिन मैं चयन आप क्या चाहते हैं करता है का उपयोग कर लगता है:

<%= f.select :country_id, Country.all.map {|c| [c.name, c.id, {:'prov-val' => c.prov_val, :'code-val' => c.code_val}]} %> 

इसका मतलब यह है कि आपके देश वस्तु prov_val और code_val क्षेत्रों है।

+0

धन्यवाद, मैंने इसे विकल्प_for_select_with_attributes से जोड़कर काम किया है: http://railsforum.com/viewtopic.php?id=38624 <% = f.select: country_id, options_for_select_with_attributes (Country.all.map {| c | [c .name, c.id, {: 'prov-val' => c.prov_val,: 'code-val' => c.code_val}]})%> – patrickandroid

3

आपको मॉडल को दृश्य से सीधे कॉल नहीं करना चाहिए।

<%= f.select :country_id, @countries.map {|c| 
    [c.name, c.id, {:'prov-val' => c.prov_val, :'code-val' => c.code_val}] 
} %> 
संबंधित मुद्दे