无法在Ruby on Rails数组中保存collection_radio_buttons

时间:2016-04-21 08:11:07

标签: ruby-on-rails ruby

我们有一个问题是保存循环的radio_buttons的值。它不会保存在数组中。 SavedAnswer模型与MultipleChoiceAnswer模型具有has_and_belongs_to_many关系。 这是我的代码:

<%= form_for @saved_answer do |f| %>
  <% @questions.each do |question| %>
    <%= collection_radio_buttons(:saved_answer, :multiple_choice_answer_ids , question.multiple_choice_answers, :id, :title) do |c| %>
      <%= c.radio_button %>
      <%= c.label %>
    <% end %>
  <% end %>
<%= f.submit "Submit" %>
<% end %>

我的输出是

Parameters: {"utf8"=>"✓", "authenticity_token"=>"57I9yLZMccvcb3Bn5/pw7kES0c9CUAGs33yCXoS0Urm1Yek/Baz8Hl7fO8Yl/OVZWLKsX7qrwOlqEBoXrGkcxQ==", "saved_answer"=>{ "multiple_choice_answer_ids"=>"1"}, "commit"=>"Submit"}

提前致谢!

2 个答案:

答案 0 :(得分:0)

你有| f |的form_for和| f |集合。 我认为这不是一个好的决定。这可能会导致问题。 如果不是 - 在尝试保存时写下你在params中收到的内容。

答案 1 :(得分:0)

只需使用复选框解决您的问题:

<%= form_for @saved_answer do |f| %>
  <% @questions.each do |question| %>
    <%= check_box_tag "saved_answer[multiple_choice_answer_ids][]", question.id, @saved_answer.multiple_choice_answer_ids.include?(question.id) %>
    <%= question.title %>
  <% end %>
<%= f.submit "Submit" %>
<% end %>

参考:http://railscasts.com/episodes/17-habtm-checkboxes?view=asciicast