Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:如何为新的子ID获取嵌套的表单_Ruby On Rails_Activerecord_Nested Form For - Fatal编程技术网

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方法。我错过什么了吗,兄弟?:)