2012-07-27 10 views
20

A continuación se muestra mi formulario de selección que funciona correctamente.Cómo agregar 'seleccionar uno ...' a options_from_collection_for_select

Cuando el usuario carga la página, debe mostrar un 'seleccionar uno ...' inicial con valor nulo o ''.

¡Intenté agregarlo al objeto pero no podía y estaría contento de conseguir ayuda!

¡Muchas gracias!


En mi punto de vista:

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

utilizo Rails 3.2 y HAML


Actualización:

Por casualidad me encontré con algo muy dulce:

include_blank: 'select one...' 

o completamente

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

En caso de que a uno le gusta demasiado ...

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

+0

puede mover su respuesta "en línea" a una respuesta real a la pregunta, para que la gente pueda votar por ella. Desafortunadamente: include_blank o: prompt solo están disponibles con rails 3.x + – rogerdpack

Respuesta

38

options_from_collection_for_select devuelve una cadena de etiquetas de opción que se han recopilado por iteración sobre la colección y la asignación del resultado de una llamada al value_method como el valor de la opción y el text_method como el texto de la opción.

Así que simplemente escriba cadena de opciones "select_one" sin valor:

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

¡Muchas gracias! Es muy fácil si lo sabes ... –

+1

dulce finalmente una opción que funciona con rieles 2.x con 3.x uso: include_blank o lo que no creo ... – rogerdpack

+1

Mientras esto funciona, sería más correcto usar el ' prompt 'opción como se comenta a continuación. –

19

:prompt es una propiedad de select_tagno de options_from_collect_for_select por lo

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

puede probar con el siguiente:

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