2011-09-08 19 views
47

Para el código que figura a continuación, quería mantener seleccionada la casilla de selección con el valor que se pasa.rails select_tag valor seleccionado

Pero esto no funciona:

@yrs =[2011,2010,2009,2008] 
<%= select_tag 'year', options_for_select([["Select" , "" ]] + @yrs.to_a,:selected=>2011) %> 

aconsejarme cómo hacerlo.

Gracias

+0

Si la respuesta proporcionada por el @M Tarek Aziz, funciona, por favor acepte. –

Respuesta

82

Eliminar la parte :selected=>.

Sintaxis:

options_for_select(@options, @selected_options) 

Uso:

options_for_select(1..5, 3) # creates a range 1..5 , with 3 as selected by default 
5

Solo para aclarar @M Tariq Aziz respuesta:

El código debería tener este aspecto:

@yrs =[2011,2010,2009,2008] 
<%= select_tag 'year', options_for_select([["Select" , "" ]] + @yrs.to_a,2011) %> 

El formato general para seleccione la etiqueta es:

<%= select_tag 'year', options_for_select(:collection, :selected) %> 
+1

Tenía un número entero como valor de clave al usar una cadena como el valor seleccionado. Donde solía to_a necesitaba usar to_i. Gracias por señalarme en la dirección correcta. Esto funcionó para mí: <% = select_tag (: map_set_priority_filter, options_for_select (MapSet.priority_filters.collect {| priority | [priority.name, priority.id]}, @ map_set_priority_filter.to_i))%> – John

25
<%= select_tag "page_type", options_for_select(@page_type.collect{ |u| [u.data_name, u.id]}, :selected=>@page.page_type), {:class =>"select_combobox",:onchange=>"reset_form(this.id,'page_type_msg');"} %> 

esto funciona para mí :)

Cuestiones relacionadas