Ruby on rails RubyonRails:如何为新的子ID获取嵌套的表单
我有问题集、问题和选择表Ruby on rails RubyonRails:如何为新的子ID获取嵌套的表单,ruby-on-rails,activerecord,nested-form-for,Ruby On Rails,Activerecord,Nested Form For,我有问题集、问题和选择表 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 c
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
classquestionset
我想指定所选id作为问题的正确答案。但由于子对象的新嵌套表单还没有真正的ID,我只能为已经保存的选项分配正确的答案,但对于刚刚通过链接添加创建的选项不起作用。简化的“视图”代码如下:
<!-- 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指定为问题的“正确答案”。但是,它不适用于那些新创建的choice子项,这些子项是由链接\u to\u add创建的
任何帮助都将不胜感激。谢谢!:) 为什么不移动:将答案字段更正为选项并使其成为布尔值?这将大大简化工作谢谢!那就行了。我从来没有这样想过:)哈哈,谢谢!但有一件事是,我现在对巧克力有一个问题。它过去是单选按钮:正确答案,但现在它是每个选项的复选框,但我想要它,以便一次只能选择一个选项。但是我不能再让它成为单选按钮了,因为正确答案现在是一个布尔值,并且是选项的一部分:)你可以为每个选项生成单选按钮,只要确保它们有相同的名称:Milk Butter Cheese’我似乎无法让它工作,但因为我在表单中使用RESTful,按钮的名称是自动创建的。下面是这样的:例如,选择1:和选择2:我试着让它们同名,但它不再正确地保存。我猜是因为我使用了RESTful方法。我错过什么了吗,兄弟?:)