使用Cocoon gem在Rails 4中嵌套表单

时间:2015-04-16 19:35:29

标签: ruby-on-rails ruby 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 %>
&#13;
&#13;
&#13;

和我的_filled_cartridge_fields部分:

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

此外,我已经定义了强大的参数:id和:_destroy在request_controller中。

link_to_add_association无效,删除工作正常。 我不知道为什么会这样。当我点击link_to_add_association默认动作时,即导航到/#页面。

1 个答案:

答案 0 :(得分:1)

我认为这个问题与此有关: Nested attributes not working creating children with new parent

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

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