我在erb中有一个编辑表单。
<%= form_for @animal do |f| %>
在代码中,我有一个带选项的选项:
<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>
但是,选择未显示正确的选定值。 我能做错什么? 如果我对它进行硬编码,我可以让它工作,但当然这不是一个可行的选择。
答案 0 :(得分:60)
在您的代码中,您的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)
或者,you can do this,它已经使用了表单对象的gender()
值:
<%= f.select :gender, ['Mare', 'Stallion', 'Gelding'] %>
答案 1 :(得分:5)
顺便说一句,如果您使用:include_blank => true
,即使表单“知道”所选内容,也会将当前选择设置为空白。