2012-07-27 5 views
20

Unten ist meine Select-Form, die richtig funktioniert.Wie fügt man 'select one ...' zu options_from_collection_for_select

Wenn der Benutzer die Seite lädt, muss er eine anfängliche 'select one ...' mit dem Wert null oder '' anzeigen.

Ich habe versucht, es dem Objekt hinzuzufügen, war aber nicht in der Lage und würde mich freuen, Hilfe zu bekommen!

Vielen Dank!


Aus meiner Sicht:

= select_tag 'incident[fault_id]' , options_from_collection_for_select(Fault.all, :id, :label) 

Ich benutze Rails 3.2 und HAML


Update:

Durch Zufall ich etwas wirklich süß gefunden:

include_blank: 'select one...' 

oder vollständig

= f.collection_select :fault_id, Fault.order(:label), :id, :label, include_blank: 'select one...' 

Im Fall mag man das auch ...

Referenz: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

+0

Sie könnten Ihre "Inline" -Antwort auf eine echte Antwort auf die Frage verschieben, so dass die Leute dafür stimmen können. Leider: include_blank oder: prompt gibt es nur mit Rails 3.x + – rogerdpack

Antwort

38

options_from_collection_for_select gibt eine Reihe von Option-Tags, die von iterieren kompiliert wurden die Auflistung und Zuweisung des Ergebnisses eines Aufrufs an die Wertmethode als Optionswert und die Textmethode als Optionstext.

So prepend nur mit "select_one" Option String ohne Wert:

= select_tag 'incident[fault_id]', content_tag(:option,'select one...',:value=>"")+options_from_collection_for_select(Fault.all, :id, :label) 
+0

Vielen Dank! Es ist so einfach, wenn Sie es wissen ... –

+1

süß endlich eine Optionen, die mit Schienen 2.x mit 3.x funktioniert verwenden: include_blank oder was nicht glaube ich ... – rogerdpack

+1

Während dies funktioniert wäre es richtiger zu verwenden ' prompt 'Option wie unten angegeben. –

19

:prompt ist eine Eigenschaft von select_tagnicht von options_from_collect_for_select so

select_tag("sales_rep[manufacturer_id]", options_from_collection_for_select(@manufacturers, "id", "name"), { :prompt => 'Select Manufacturer' }) 
0

könnten Sie versuchen, die folgenden:

collection_select(:sales_rep, :manufacturer_id, @manufacturers, :id, :name, { :prompt => 'Select Manufacturer' }) 
Verwandte Themen