Ruby on rails 单击表单_中的submit按钮,可查看我的数据库中3个项目的结果

Ruby on rails 单击表单_中的submit按钮,可查看我的数据库中3个项目的结果,ruby-on-rails,ruby,form-for,Ruby On Rails,Ruby,Form For,我在rails应用程序中有一个表单,它在我的数据库中创建了一个项目,但是当我提交表单时,每次单击它都会创建3个项目 我有另外两个表单可以向同一个数据库添加内容,但它们位于不同的页面上,这可能有关联吗 这是我在“新辩论”页面上的表格: 我在“展示辩论”页面上还有另一张表格,出现两次: <%= form_for(@debate.debates.create) do |support_form| %> <div> <%= support_form.lab

我在rails应用程序中有一个表单,它在我的数据库中创建了一个项目,但是当我提交表单时,每次单击它都会创建3个项目

我有另外两个表单可以向同一个数据库添加内容,但它们位于不同的页面上,这可能有关联吗

这是我在“新辩论”页面上的表格:



我在“展示辩论”页面上还有另一张表格,出现两次:

<%= form_for(@debate.debates.create) do |support_form| %>
  <div>
    <%= support_form.label :content %><br />
    <%= support_form.text_area :content %>
  </div>
  <%= support_form.hidden_field :is_supporting, :value => is_supporting %>
  <div class="actions">
    <%= support_form.submit %>
  </div>
<% end %>


您是否支持%>

当我在3张表格中的任何一张上单击submit按钮时,我会看到3个新的辩论。

我认为您的代码可能正在创建这些额外的记录

= form_for(@debate.debates.create) do |support_form|
如果我的假设是正确的,
.discussions
是一个关联,您正在使用该行创建该关联

尝试使用
build

= form_for(@debate.debates.build) do |support_form|

在您的第一个视图中,您将辩论设置为什么?另外,所有3个新创建的
discussion
对象是否具有相同的属性?@discusion是一个新的discussion。辩论对象不具有相同的属性,第一个对象具有我在表单中给出的属性,其余的对象具有nil,因为它们的所有属性都是这样,所以它实际上并不完美。当我使用create时,新辩论的辩论id被正确设置为@discome,但当我使用build时,新辩论的辩论id为nil。在第二种形式
@discome
,这是新记录还是现有记录?嗯,我想这并不重要,但我从您发送的视图中收集的信息,
@discussion
将已存在,您正在尝试为
discussion
创建关联。因此,
@辩论
应该是现有记录。如果
@discussion
是一个新记录,那么实际上您将拥有一个更像第一个记录的表单,然后使用
字段\u来
为相关的
辩论提供字段。你可能想看看这个
= form_for(@debate.debates.build) do |support_form|