如何销毁两个模型之间的所有关联数据?(Rails初学者)

Hop*_*eam 9 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有两个模型:store并且category有一个名为的连接表categories.stores.

如何删除连接表中商店对象的所有关系数据?

我可以使用以下其中一种:

store.categories.destroy 要么 category.stores.destroy

注意:两个模型都是has_and_belongs_to_many(因此没有每个关联记录的标识符 - 只有store_id和category_id)

dav*_*idb 10

has_and_belongs_to_many关联中,您可以使用delete_alldestroy_all.

在一个has_many关联中,您应该考虑使用delete_all它,因为它删除了:dependent策略后面的记录(默认情况下它是nulls),而不是destroy_all销毁相关记录.

更多详情,请访问http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Delete+or+destroy%3F