【问题标题】:Rails: nested form binded to an object – problems with select boxRails:绑定到对象的嵌套表单 - 选择框的问题
【发布时间】:2012-05-09 08:19:19
【问题描述】:

我的 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>

【问题讨论】:

  • 正确答案的字段值是否被保存?
  • 是的,它保存在数据库中。它是一个整数字段。

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


【解决方案1】:

您需要在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' %>

【讨论】:

    【解决方案2】:

    尝试为selected 设置一个值。

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

    编辑:现在无法测试它,但我很确定select 将自行采用一系列选项。所以你不应该在这里需要options_for_select - 然后select应该设置 selected 选项.. 试试这个并参考:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 2017-05-09
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      相关资源
      最近更新 更多