2009-08-09 11 views
11

En una vista que tengo, estoy usando fields_for para mostrar datos de formulario para una tabla relacional. Sin embargo, parte de este formulario tendrá listas de selección para elegir. Veo que hay etiquetas, text_field, text_area helpers para form_for y fields_for helpers que completarán la información necesaria de un objeto de modelo ya poblado ... pero ¿qué pasa con un ayudante de lista de selección que hará lo mismo?rails: fields_for select

Esto sería particularmente útil para cuando tengo una relación uno a muchos desde fields_for recorre cada elemento que ya está en el objeto modelo y lo muestra con un índice.

¿Existe algo como esto?

Respuesta

28

Existen varios métodos de ayuda de selección que puede usar. El más común es collection_select. Esto es genial si tiene una asociación belongs_to en el modelo y desea usar un menú de selección para configurar esto.

<%= f.collection_select :category_id, Category.all, :id, :name %> 

Para otras situaciones, no es el método más genérico select. Aquí puede suministrar una variedad de opciones que desea proporcionar.

<%= f.select :priority, [["Low", 1], ["Medium", 2], ["High", 3]] %> 

El primer valor en cada elemento de la matriz es el nombre de la opción de selección, el segundo es el valor que se asigna al atributo.

Hay muchos otros menús de selección (para fechas y horas) pero los dos anteriores deberían cubrir la mayoría de las situaciones. Estos métodos funcionan tanto en form_for como en fields_for.

2

Está buscando select o collection_select. Ambos se pueden usar en form_for o fields_for blocks. Hay ejemplos sobre cómo usarlos en form_for en la documentación

Cuestiones relacionadas