2011-07-16 9 views
13

He estado buscando stackoverflow durante casi 2 horas, ahora estoy pasando por preguntas similares pero las respuestas simplemente no parecen funcionar.Cómo configurar "seleccionado" en select_tag/options_from_collection_for_select

Tengo el siguiente código:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name") %> 

Me gustaría mostrar la opción que he elegido previamente como seleccionado en lugar de ir a la primera etiqueta por defecto.

En las otras preguntas que han sugerido agregar lo siguiente (ninguna de ellas funciona).

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", "1") %> 

O:

<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @models.first.id) %> 

ps. Estoy usando Rails 3.1.RC4

+0

¿Está esto en una forma o una selección independiente? – s84

+0

Es una selección independiente – imjp

Respuesta

26

Suponiendo que, además de su @models que contiene la lista completa, también tiene @model que contiene el registro actual, entonces usted puede hacer lo siguiente:

<%= 
    select_tag "name_dropdown", 
    options_from_collection_for_select(@models, "friendly_id", "name", @model.id) 
%> 

Básicamente , el cuarto parámetro a options_from_collection_for_select(...) debe contener el id del elemento que desea seleccionar. Su segunda muestra de código obliga a que el ID seleccionado sea 1 cada vez, y la tercera muestra que publica siempre hace que el primer elemento en @models sea seleccionado, independientemente del modelo seleccionado actualmente.

+2

Gracias amigo, lo arreglé poniendo '@ model.friendly_id' en lugar de' @ model.id': '<% = select_tag" name_dropdown ", options_from_collection_for_select (@models," friendly_id ", "nombre", @ model.friendly_id)%> ' – imjp

Cuestiones relacionadas