2013-05-16 106 views
0

我有4个模型报告,分类,问题,答案。我的问题是报告与类别没有关联。我想要创建如下嵌套表格:导轨中的三级嵌套表格

@report= Report.new 
@category = @report.build_category 
@quetions = @category.questions.build 
@questions.answers.build 

但是没有关联报告与类别我不能这样做。我有类似的错误categories.report_id不存在我在做什么错了?

我协会:

类别=>有许多=>问题

问题=>有许多=>答案

我的DB模式:

Reports: 
    user_id: integer 
    category_id:integer 

Category: 
    title: string 
    slug: string 

Question: 
    title: string 
    category_id: integer 

Answer: 
    title: string 
    question_id: integer 
+0

看到'@quetions = @ category.questions.build',' @ quetions'改为'@ questions' –

+0

我在第二行有问题** @ category = @ report.build_category **。我评论了其他路线。 – EJIqpEP9

+0

关联报告与类别是什么? –

回答

1

我推荐使用NestedForm Gem(https://github.com/ryanb/nested_form

gem 'nested_form' 

你必须做这样的事情在控制器中的以下内容:

@report= Report.new 
@report.build_category 

然后在视图:

<%= nested_form_for @report do |f| %> 
    <%= f.fields_for :category do |category_form| %> 
    <%= category_form.text_field :name %> 
    <%= category_form.fields_for :questions do |question_form| %> 
     <%= question_form.text_field :question %> 
     <%= question_form.fields_for :answers do |answer_form| %> 
     <%= answer_form.text_field :answer %> 
     <% end %> 
     <p><%= question_form.link_to_add "Add a Answer", :answers %></p> 
    <% end %> 
    <p><%= category_form.link_to_add "Add a Question", :questions %></p> 
    <% end %> 
+0

非常感谢!你很棒。这对我帮助很大。 – EJIqpEP9