我正在尝试使用Cocoon gem创建嵌套表单。 我使用github提供的文档。 我设置了这样的模型:
//requst.rb
has_many :filled_cartridges, dependent: :destroy
accepts_nested_attributes_for :filled_cartridges, :reject_if => :all_blank,
allow_destroy: true
//filled_cartridge.rb
belongs_to :request

在我的_form中我有嵌套形式:
<%= f.fields_for :filled_cartridges do |filled_cartridge| %>
<%= render 'filled_cartridge_fields', f: filled_cartridge %>
<%= link_to_add_association 'add', f, :filled_cartridges %>
<% end %>
&#13;
和我的_filled_cartridge_fields部分:
<fieldset>
<%= f.text_field :cartridge_id %>
<%= f.hidden_field :_destroy %>
<%= link_to_remove_association "remove", f %>
</fieldset>
&#13;
此外,我已经定义了强大的参数:id和:_destroy在request_controller中。
link_to_add_association无效,删除工作正常。 我不知道为什么会这样。当我点击link_to_add_association默认动作时,即导航到/#页面。
答案 0 :(得分:1)
我认为这个问题与此有关: Nested attributes not working creating children with new parent
您需要添加inverse_of
属性才能使其正常工作
has_many :filled_cartridges, inverse_of: :request, dependent: :destroy