gpt4 book ai didi

ruby-on-rails-3 - 导轨 : nested_form gem remove not working but add works

转载 作者:行者123 更新时间:2023-12-04 16:11:09 25 4
gpt4 key购买 nike

我的问题有点类似于问题 nested_form gem add works but remove fails...why? .

我有一个产品编辑页面,其中产品的子类别链接在 product_sub_categories 中。为了将子类别分配给产品,我使用了 product_sub_categories 的嵌套属性。因此,产品可以有多个子类别。

在产品型号上,

has_many   :product_sub_categories
has_many :sub_categories, :through => :product_sub_categories
accepts_nested_attributes_for :product_sub_categories, :allow_destroy => true

在产品编辑 View 中:
 <%= f.fields_for :product_sub_categories do |product_sub_category| %>
<%= product_sub_category.collection_select :sub_category_id, @sub_categories, :id, :sub_category, {:include_blank => 'Select a Sub Category'} %>
<%= product_sub_category.link_to_remove "Remove", :class => "subcatlink" %>
<% end %>

代码适用于添加子类别。但是当我删除子类别时失败。日志给出:
 "product_sub_categories_attributes"=>{"0"=>{"sub_category_id"=>"1", "_destroy"=>"false", "id"=>"9"}, "1"=>{"sub_category_id"=>"1", "_destroy"=>"1", "id"=>"17"}},
ProductSubCategory Load (0.2ms)[0m [1mSELECT `product_sub_categories`.* FROM `product_sub_categories` WHERE `product_sub_categories`.`product_id` = 8 AND `product_sub_categories`.`id` IN (9, 17)

虽然,我点击删除,它只是通过 _destroy="1",但不会破坏子类别。

有人能告诉解决方案吗?

更新:

非常抱歉我的愚蠢错误。我没有正确地看到代码。在我复制的模型中
accepts_nested_attributes_for :product_sub_categories

没有 :allow_destroy => 真。当我删除它时,代码正常工作。

最佳答案

您需要添加 dependent destroy关联旁边的子句,它将破坏产品的子类别。

has_many   :product_sub_categories, :dependent => :destroy

关于ruby-on-rails-3 - 导轨 : nested_form gem remove not working but add works,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15654280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com