2009-08-09 2 views
11

В представлении, которое у меня есть, я использую поля для отображения данных формы для реляционной таблицы. Тем не менее, часть этой формы будет иметь избранные списки на выбор. Я вижу, что есть метки, текстовые поля, текстовые помощники для form_for и fields_for помощников, которые заполнят информацию, необходимую из уже заполненного объекта модели ... но как насчет помощника списка выбора, который будет делать то же самое?rails: fields_for select

Это было бы особенно полезно, если у меня есть отношения «один ко многим», так как fields_for выполняет итерации через каждый элемент, который уже находится в объекте модели, и отображает его с помощью индекса.

Есть ли что-нибудь подобное?

ответ

28

Существует несколько методов вспомогательного помощника, которые вы можете использовать. Наиболее распространенным является collection_select. Это здорово, если у вас есть ассоциация belongs_to на модели, и вы хотите использовать меню выбора, чтобы установить это.

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

В других ситуациях существует более общий метод select. Здесь вы можете предоставить набор параметров, которые вы хотите предоставить.

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

Первое значение в каждом элементе массива является именем выбора опции, второе значение, которое будет присвоен атрибут.

Существует много других меню выбора (для дат и времени), но вышеприведенные два должны охватывать большинство ситуаций. Эти методы работают как на form_for, так и на fields_for.

2

Вы ищете select или collection_select. Оба могут использоваться в form_for или fields_for для блоков. Существуют примеры того, как их использовать в форме в документации

Смежные вопросы