Рельсы: поля для выбора
В представлении, которое у меня есть, я использую fields_for для отображения данных формы для реляционной таблицы. Тем не менее, часть этой формы будет иметь избранные списки на выбор. Я вижу, что есть метки, текстовые поля, текстовые помощники для form_for и fields_for помощников, которые заполнят информацию, необходимую из уже заполненного объекта модели... но как насчет помощника списка выбора, который будет делать то же самое?
Это было бы особенно полезно, если у меня есть отношение "один ко многим", поскольку поля_имя повторяются через каждый элемент, который уже находится в объекте модели, и отображает его с индексом.
Есть ли что-нибудь подобное?
Ответы
Ответ 1
Существует несколько методов выбора помощника, которые вы можете использовать. Наиболее распространенным является 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 для блоков. Существуют примеры того, как их использовать в form_for в документации