Не удалось сохранить collection_radio_buttons в массиве Ruby on Rails
У нас есть проблема, чтобы сохранить значения radio_buttons цикла. Это не сохраняет в массиве. Модель SavedAnswer имеет отношение has_and_belongs_to_many с моделью MultipleChoiceAnswer. Это мой код:
<%= 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 ответа
Просто используйте флажки для вашей проблемы:
<%= 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
У вас есть form_for с |f| и сбор с |f|. Это не очень хорошее решение, я думаю. Это может вызвать проблемы. Если нет - напишите, что вы получаете в параметрах при попытке сохранить.