2012-07-27 14 views
20

Di seguito è riportato il mio modulo di selezione che funziona correttamente.Come aggiungere "seleziona uno ..." a options_from_collection_for_select

Quando l'utente carica la pagina, deve mostrare un iniziale 'seleziona uno ...' con valore null o ''.

Ho provato ad aggiungerlo all'oggetto ma non ci sono riuscito e sarei felice di ricevere aiuto!

Grazie mille!


A mio avviso:

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

Io uso Rails 3.2 e HAML


Aggiornamento:

Per caso ho trovato qualcosa di molto dolce:

include_blank: 'select one...' 

o completamente

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

Nel caso in cui si voglia che anche ...

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

+0

potresti spostare la risposta "in linea" a una risposta reale alla domanda, in modo che le persone possano votarla. Sfortunatamente: include_blank o: prompt sono disponibili solo con le guide 3.x + – rogerdpack

risposta

38

options_from_collection_for_select restituisce una stringa di tag di opzione che sono stati compilati da iterazione su la raccolta e l'assegnazione del risultato di una chiamata a value_method come valore dell'opzione e text_method come testo dell'opzione.

Quindi fallo precedere da stringa di opzione "select_one" senza valore:

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

Grazie mille! È così facile se lo sai ... –

+1

dolce finalmente un'opzione che funziona con binari 2.x con 3.x uso: include_blank o cosa non credo ... – rogerdpack

+1

Mentre funziona sarebbe più corretto usare l'' prompt 'opzione come commentato di seguito. –

19

:prompt è una struttura di select_tagnon di options_from_collect_for_select così

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

si potrebbe provare la seguente:

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