我在erb中有一个编辑表格。
<%= form_for @animal do |f| %>
在代码中,我有一个带有选项的选择:
<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>
但是,选择没有显示正确的选择值。我可能做错了什么?如果我对其进行硬编码,我可以让它工作,但这当然不是一个可行的选择。
我在erb中有一个编辑表格。
<%= form_for @animal do |f| %>
在代码中,我有一个带有选项的选择:
<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>
但是,选择没有显示正确的选择值。我可能做错了什么?如果我对其进行硬编码,我可以让它工作,但这当然不是一个可行的选择。
在您的代码中,您的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
,这会将您当前的选择设置为空白,即使表单“知道”选择了什么。