我有这样的表格:
<%= form_for(@submitted_quiz) do |f| %>
<%= f.hidden_field :quiz_id, :value => @quiz.id %>
<%= f.hidden_field :name, :value => @quiz.name %>
<%= @quiz.questions.each do |question| %>
<%= f.label question.content %>
<%= question.answers.each do |answer| %>
<%= f.label answer.content %>
<%= f.fields_for (:submitted_answers) do |ff| %>
<%= ff.radio_button :content, value: answer.content %>
<% end #fields_for (:submitted_answers) do %>
<% end #answer.each do %>
<% end #questions.each do %>
<%= f.submit %>
<% end #form_for %>
但我能够检查所有单选按钮,而不是每个问题集只有一个单选按钮(每个问题有4个答案,我想只检查5个答案中的一个)。我知道为什么会这样,因为每个submitted_answers
都是唯一的,我正在为每个{@ 1}构建一个独立的单选按钮,但我不知道如何实际解决这个问题。有什么想法吗?
答案 0 :(得分:0)
我通过将question.answers.each
循环放入fields_for
来解决它。我对这是如何工作有一种想法,但我仍然不能100%确定为什么这会解决它。
<%= f.fields_for (:submitted_answers) do |ff| %>
<%= question.answers.each do |answer| %>
<%= ff.label :content, answer.content %>
<%= ff.radio_button :content, answer.content %>
<% end #answer.each do %>
<% end #fields_for (:submitted_answers) do %>