我有两个模型:store
和category
以及一个名为categories.stores
的联接表。
如何在连接表中删除商店对象的所有关系数据?
我可以使用以下其中一种:
store.categories.destroy
或category.stores.destroy
注意:两个模型都是has_and_belongs_to_many
(因此每个关联记录都有无标识符 - 只有store_id和category_id)
答案 0 :(得分:9)
在has_and_belongs_to_many
关联中,您可以使用delete_all
或destroy_all
。
在has_many
关联中,您应该考虑使用delete_all
,因为它会删除:dependent
策略后的记录(默认情况下,它会使外键无效)而不是destroy_all
,这会破坏关联记录。