30

我在erb中有一个编辑表格。

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

在代码中,我有一个带有选项的选择:

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

但是,选择没有显示正确的选择值。我可能做错了什么?如果我对其进行硬编码,我可以让它工作,但这当然不是一个可行的选择。

4

2 回答 2

70

在您的代码中,您的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'] %>
于 2013-10-01T16:02:57.497 回答
5

顺便说一句,如果您使用的是:include_blank => true,这会将您当前的选择设置为空白,即使表单“知道”选择了什么。

于 2014-02-11T18:38:24.080 回答