2013-09-06 20 views
5

Koleksiyon_select ile ilgili sorunu çözmek için lütfen bana yardım edin. Ben kullandığınızda:Rails collection_select set_base için değer ayarlama

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> 

Ama = "0" "Herhangi biri" seçeneği için değer gerekir. Mümkün mü?

Güncelleme:

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

bana yardımcı ama railsway var mı? Yoksa bir şeyi yanlış anladım mı?

+0

Eğer [0, 'Any'] '? –

+3

Ama bence hiç mantıklı değil. DEFAULT değeri boş değil gibi görünüyor. Tanım gereği boşluk, 'varlığı' başarısız olacak bir değerdir –

+0

@MichaelSzyndel, söylediğiniz doğrudur, Ama gerçekten '0' kimliğine sahip herhangi bir kayıt bulabiliyor mu? Çünkü kesinlikle bu seçim bazı formun bir parçası. Yani herhangi bir id carmake_id alanında '0' girme noktası nedir. –

cevap

9

Bu işe yarayabilecek:

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

eyleme geçtiğini kaydetme/güncellenmesi test etmedi rağmen.

İlgili konular