0

我有 4 个模型报告、类别、问题、答案。我的问题是报告与类别没有关联。我想创建嵌套表单,如:

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

但是如果没有与类别的关联报告,我就无法做到。我有类似categories.report_id 的错误不存在我做错了什么?

我的联想:

类别 => 有很多 => 问题

问题 => 有很多 => 答案

我的数据库架构:

Reports:
  user_id: integer
  category_id:integer

Category:
  title: string
  slug: string

Question:
  title: string
  category_id: integer

Answer:
  title: string
  question_id: integer
4

1 回答 1

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 %>
于 2013-05-16T14:13:47.323 回答