Rails 4 中使用 Cocoon gem 的嵌套形式



我正在尝试使用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 %>

我的_filled_cartridge_fields部分:

<fieldset>
  <%= f.text_field :cartridge_id %>
  <%= f.hidden_field :_destroy %>
  <%= link_to_remove_association "remove", f %>
</fieldset>

此外,我还在request_controller内部为 :id 和 :_destroy 定义了强大的参数。

link_to_add_association不起作用,删除工作正常。我不知道为什么会这样。同样,当我单击link_to_add_association默认操作时,即导航到/# 页面。

我认为这个问题与此有关:嵌套属性不起作用,使用新父级创建子项

您需要添加inverse_of属性才能使其工作

has_many :filled_cartridges, inverse_of: :request, dependent: :destroy

最新更新