rails erb форма вспомогательные параметры для select: selected

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

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

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

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

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

2 ответов


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

пожалуйста, смотрите документы для 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'] %>

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