【问题标题】:belongs_to association not being create when using collection.build使用collection.build时未创建belongs_to关联
【发布时间】:2011-06-12 20:18:22
【问题描述】:

我有这个表格:

<%= form_for(@debate.debates.build) 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 %>

每个辩论都有_many 辩论并且属于一个辩论(树结构),@debate.debates.build 应该创建一个新的辩论,它是@debate 的子级,但是由@debate.debates.build 创建的辩论总是零

但是,当我在 irb 中运行相同的代码时,关联已正确设置,并且新辩论的辩论 id 是其父级,这是我想要的方式。

怎么了?以及如何确保新辩论的父辩论 ID 设置正确?

【问题讨论】:

    标签: ruby-on-rails ruby belongs-to


    【解决方案1】:

    它在内存中构建它,但我认为它不会真正保存它,直到运行保存,大概是在表单的接收操作中,可能是控制器的创建操作。

    为了使它起作用,辩论 ID(debate_id?你没有展示足够多的模型)可能也需要在表单中。

    最后,该问题可能与attr_accessibleattr_protected 问题有关。如果不允许将辩论 id 设置为批量属性更新的一部分,它可能会在提交中丢失。

    【讨论】:

    • 是的,我必须在表单中输入辩论 ID。谢谢
    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 2019-01-07
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多