2010-12-29 11 views

cevap

12
<%= select_tag(:services, 
       Service.all.collect { |c| [c.id, c.name] }. 
       insert(0, "Select a Service"))%> 

. Raylar 3 için, Prathan Thananart'ın cevabı.

139

Çoğu zaman, doğrudan diziye şey eklemek istemiyorum; Ya bunlar daha temiz bir çözümdür ait:

  • Kullanım :prompt => "Placeholder" Öznitelik nil formu oluşturulduğu anda sadece onlara görünmek için yer tutucu istiyorum. Varsayılan olarak seçilecektir, ancak kullanıcı gönderirse hiçbir şey kaydedilmez. Öznitelik zaten doldurulmuşsa [muhtemelen a) varsayılan değer varsa veya b) bir düzenleme formu] ise, yer tutucu öğe listeden tamamen silinir.
  • Yer tutucuyu işlenmiş listeye her zaman eklemek istiyorsanız, :include_blank => "Placeholder" kullanın.
+0

Tamamen katılıyorum. İşaretli cevap işe yarıyor ama çok hacky. İstediğiniz şeyi yapmak için yerleşik seçenek budur. DÜZENLEME: Sadece orijinal cevabın 2.3 olduğunu gördü. Yine de iki cevabı birleştiririm. –

+3

': prompt' benim için çalışmıyor – Uko

+0

Bunu yaparsanız: include_blank: true -it boş bir boşluk ekleyecektir. – mjnissim