2013-09-06 6 views
5

के लिए सेट मान का चयन करें संग्रह_ चयन के साथ समस्या हल करने के लिए कृपया मेरी सहायता करें। जब मैं का उपयोग करें:Rails collection_select set_blank

collection_select(:service, :carmake_id, Carmake.all, :id, :name, include_blank: 'Any') 

HTML है:

<select id="service_carmake_id" name="service[carmake_id]"> 
    <option value="">Any</option> 
    <option value="12">Audi</option> 
    <option value="16">Porsche</option> 
    <option value="17">VW</option> 
</select> 

लेकिन मैं = "0" के लिए "कोई भी" विकल्प मूल्य की जरूरत है। क्या यह संभव है?

अद्यतन:

select(:service, :carmake_id, [['Any', 0]] + Carmake.all.collect { |p| [p.name, p.id]}) 

मुझे मदद मिली है, लेकिन railsway है? या मैं कुछ गलत समझता हूँ?

+0

यदि आप '0, 'कोई भी'] पास करते हैं तो क्या होगा? –

+3

लेकिन मुझे लगता है कि इसका कोई मतलब नहीं है। ऐसा लगता है कि आप DEFAULT मान को खाली नहीं मांग रहे हैं। परिभाषा के आधार पर खाली एक मूल्य है जो 'उपस्थिति' चेक –

+0

@MichaelSzyndel में विफल होगा जो आपने कहा है सही है, लेकिन क्या वह वास्तव में आईडी '0' के साथ कोई रिकॉर्ड ढूंढने में सक्षम है। क्योंकि निश्चित रूप से यह चयन कुछ रूपों का एक हिस्सा है। तो किसी भी आईडी carmake_id फ़ील्ड में '0' दर्ज करने का बिंदु क्या है। –

उत्तर

9

यह काम हो सकता है:

options = Carmake.all.unshift Carmake.new(id: 0, name: 'Any') 
collection_select(:service, :carmake_id, options, :id, :name, include_blank: 'Any') 

हालांकि मैं कार्रवाई में बचत/अद्यतन करने का परीक्षण नहीं किया।

संबंधित मुद्दे