rails erb form helper options_for_select:selected

Dre*_*ris 27 ruby ruby-on-rails selected form-helpers ruby-on-rails-3

我在erb中有一个编辑表单.

<%= form_for @animal do |f| %>
Run Code Online (Sandbox Code Playgroud)

在代码中我有一个选项选项:

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

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

kri*_*lim 61

在您的代码中,您的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)
Run Code Online (Sandbox Code Playgroud)

或者,您可以这样做,它已经使用了gender()表单对象的值:

<%= f.select :gender, ['Mare', 'Stallion', 'Gelding'] %>
Run Code Online (Sandbox Code Playgroud)


Han*_*uge 5

顺便说一句,如果您正在使用:include_blank => true,即使表单"知道"所选内容,也会将当前选择设置为空白.