Ruby on rails 单击表单_中的submit按钮,可查看我的数据库中3个项目的结果
我在rails应用程序中有一个表单,它在我的数据库中创建了一个项目,但是当我提交表单时,每次单击它都会创建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
我在“展示辩论”页面上还有另一张表格,出现两次:
<%= 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|