0

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

我有 2 个其他表单可以将内容添加到同一个数据库中,但它们位于不同的页面上,这可能是相关的吗?

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

<%= form_for(@debate) do |f| %>
  <div class="field">
    <%= f.label :proposition %><br />
    <%= f.text_field :proposition %>
   </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我在“显示辩论”页面上还有另一种形式,它出现了两次:

<%= 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 个表单中的任何一个上的提交按钮时,我会得到 3 个新的辩论。

4

1 回答 1

0

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

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

如果我的假设是正确.debates的,那就是一个关联,并且您正在与该行创建该关联。

尝试使用build

= form_for(@debate.debates.build) do |support_form|
于 2011-06-12T18:06:18.343 回答