2016-04-21 40 views
0

我们在保存循环的radio_buttons的值时遇到了问题。它不保存在数组中。 SavedAnswer模型与MultipleChoiceAnswer模型具有has_and_belongs_to_many关系。 这是我的代码:无法在数组中保存collection_radio_buttons Ruby on Rails

<%= 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

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

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