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) %>
Однако выбор не показывает правильное выбранное значение.
Что я могу делать неправильно?
Я могу заставить его работать, если я его жестко программирую, но, конечно, это не жизнеспособный вариант.
Ответы
Ответ 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
, это приведет к тому, что ваш текущий выбор будет пустым, даже если форма "знает" то, что выбрано.