我们有一个问题是保存循环的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"}
提前致谢!
答案 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