Подтвердить что ты не робот

Rails erb form helper options_for_select: selected

У меня есть форма редактирования в erb.

<%= form_for @animal do |f| %>

Внутри кода у меня есть выбор с параметрами:

<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>

Однако выбор не показывает правильное выбранное значение. Что я могу делать неправильно? Я могу заставить его работать, если я его жестко программирую, но, конечно, это не жизнеспособный вариант.

4b9b3361

Ответ 1

В вашем коде ваш вызов options_for_select() устанавливает выбранное значение в "gender" и не пытается использовать значение из вашего объекта формы.

Подробнее о примерах использования см. в документах options_for_select().

options_for_select(['Mare', 'Stallion', 'Gelding'], f.object.gender)
options_for_select(['Mare', 'Stallion', 'Gelding'], :selected => f.object.gender)

В качестве альтернативы вы можете сделать это, который уже будет использовать значение gender() для вашего объекта формы:

<%= f.select :gender, ['Mare', 'Stallion', 'Gelding'] %>

Ответ 2

Кстати, если вы используете :include_blank => true, это приведет к тому, что ваш текущий выбор будет пустым, даже если форма "знает" то, что выбрано.