Rails:绑定到对象的嵌套表单 - 选择框出现问题

时间:2012-05-09 08:19:20

标签: ruby-on-rails ruby-on-rails-3 forms drop-down-menu form-helpers

我的Rails应用程序中有一个嵌套的表单模型。当我去编辑模型中的对象时,除了选择框之外,我的所有字段(text_area,check_box等)都填充了数据库中的数据。当我使用表单编辑模型中的现有数据时,如何让我的选择框也填充?

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

  <%= f.fields_for :questions do |builder| %>
    <%= render 'question_fields', f: builder %>
  <% end %>

<% end %>

_question_fields.html.erb

<fieldset>

  <%= f.text_area :question_text %>

  <%= f.select :correct_answer, options_for_select([['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5]]), :prompt => 'Choose the correct answer' %>

  <%= f.check_box :question_check %>

</fieldset>

2 个答案:

答案 0 :(得分:8)

您需要在options_for_select函数调用中发送所选参数。

<%= f.select :correct_answer, options_for_select([['A', 1], ['B', 2], ['C', 3], ['D', 4], ['E', 5]], :selected => f.object.correct_answer), :prompt => 'Choose the correct answer' %>

答案 1 :(得分:0)

尝试为selected设置一个值。

请参阅:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

编辑:现在无法对其进行测试,但我非常确定select会自行选择一系列选项。所以你不应该在这里options_for_select - 然后select应该设置选中的选项。 试试这个并参考:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select