我有 QuestionSet、Question 和 Choice 表
class QuestionSet < ActiveRecord::Base
attr_accessible :name
has_many :questions
end
class Question < ActiveRecord::Base
attr_accessible :name, :correct_answer
belongs_to :question_set
has_many :choices
end
class Choice < ActiveRecord::Base
attr_accessible :question_id, :value
belongs_to :question
end
我想将 Choice 的 id 分配为 Question 的正确答案。但是由于新的nested_form_for 子对象还没有真正的ID,我只能为已经保存的选项分配正确的答案,但对刚刚通过link_to_add 创建的选项不起作用。下面的简化“视图”代码:
<!-- BTW 'f' below is QuestionSet -->
<%= f.fields_for :questions do |f_f| %>
<!-- Question Name -->
<%= f_f.text_field :name %>
<%= f_f.fields_for :choices do |f_f_f| %>
<!-- Designate as Correct Answer -->
<%= f_f.radio_button :correct_answer, f_f_f.object.id %><!-- THIS IS THE PROBLEM-->
<!-- Choice Name -->
<%= f_f_f.text_field :value %>
<%= f_f_f.link_to_remove "Remove Choice" %>
<% end %>
<%= f_f.link_to_add "Add Choice", :choices %>
<%= f_f.link_to_remove "Remove Question" %>
<% end %>
<%= f.link_to_add "Add Question", :questions %>
再次,代码仅在选择之前已保存且已具有 id 的情况下才有效并将选择子项的 id 分配为问题的“正确答案”。但是,它不适用于那些由 link_to_add 创建的新创建的选择子项。
任何帮助将不胜感激。谢谢!:)