Rails 关联 - 在一个视图中具有独立模型和表单的简单表单

Rails Association - Simple Form with separate models and forms in one view

我在我的 rails 4 应用程序中使用简单的表单。

我在应用程序中有 3 个模型。一个叫Project,一个叫Scope,一个叫Data(模型叫datum,视图叫data)。

Project 和 Scope 之间存在 has and belongs many 关联。数据属于范围。

我要求用户大致概述项目的范围(通过在范围表中提出高级问题),然后根据范围表中 true/false 问题的答案,我呈现部分这是在数据视图中创建的表单。

在我的范围表单中,我有一个问题:

<%= f.input :data, :as => :boolean, :label => false, :inline_label => true  %>

数据视图中的那些部分在新项目视图中呈现。如果关于数据的问题(在范围表中询问)的答案是真的,我写这行是为了尝试显示数据表。

在我的新项目视图中,我有:

  <% if @project.scopes.data == true %>
        <%= render "data/form" %>
      <% end %>

在我的架构中,我有一个连接 table 表单 projects_scopes。我的数据模型中还有 scope_id 的外键。

但是,我得到这个错误:

`enter code here`undefined method `data' for #<ActiveRecord::Associations::CollectionProxy []>

有人知道我做错了什么吗?

谢谢

您需要做一个嵌套表格。基本上,您最终会在嵌套对象的简单表单内部执行另一个简单表单,然后让您的主要对象接受嵌套对象的嵌套属性。这是一个详细介绍实现的参考。我相信你也可以在 youtube 上找到它。

http://railscasts.com/episodes/196-nested-model-form-revised?view=comments

另外,根据表单的复杂程度,您可以考虑创建一个表单对象。