Не удалось сохранить 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|. Это не очень хорошее решение, я думаю. Это может вызвать проблемы. Если нет - напишите, что вы получаете в параметрах при попытке сохранить.

Другие вопросы по тегам