Carriles FormTagHelper falta importantes métodos de selección y collection_select

StackOverflow https://stackoverflow.com/questions/2360870

  •  23-09-2019
  •  | 
  •  

Pregunta

Puede hacer esto cuando se utiliza form_for(@model...):

collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})

Y la salida es algo como esto:

<select id="subscription_duration" name="subscription[duration]">
    <option value="">Please select</option>
    <option value="Some">Some</option>
    <option value="Values">Values</option>
</select>

Si se utiliza un formulario sin un modelo, que no tienen ese método de ayuda agradable para crear las etiquetas <option> para usted. En su lugar, usted tiene que hacer esto:

select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')

FormOptionsHelper trabajar juntos en un formulario envolver un modelo , y tienen la select y collection_select para hacer la vida más fácil. Para una form_tag liso (sin un modelo), sin embargo, no hay tal FormOptionsTagHelper. FormTagHelper tiene un select_tag método, pero se tienen que escribir manualmente las opciones que es un desperdicio. Parece que esto se ha solucionado en alguna parte.

Podría escribir mi propio ayudante para deshacerse de escribir esas etiquetas de opción de forma manual, pero eso es lo que lo hace FormOptionsHelper#collection_select ... ¿Hay un equivalente a cabo allí por formas sin modelos?

¿Fue útil?

Solución

seleccione y collection_select se puede llamar sin un modelo. Que suelen utilizar una combinación de dos palabras significativas, y una serie de pares [etiqueta, valor] para seleccionar. El único inconveniente es tener que utilizar el abc formato [xyz].

Ha intentado utilizar options_for_select ?

select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top