6

私の問題は、質問nested_form gem add works but remove fails...なぜに似ていますか? .

製品のサブカテゴリが product_sub_categories にリンクされている製品編集ページがあります。製品にサブカテゴリを割り当てるために、product_sub_categories にネストされた属性を使用しました。そのため、製品には複数の 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

製品編集ビューでは:

 <%= 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 => true なし。削除すると、コードは正常に機能しました。

4

1 に答える 1

0

関連の横に句を追加する必要がありdependent destroyます。これにより、製品のサブカテゴリが破棄されます。

has_many   :product_sub_categories, :dependent => :destroy
于 2013-03-27T08:18:02.237 に答える