如何在Rails 4.2中销毁ActiveRecord关系?

时间:2015-09-25 20:07:33

标签: ruby-on-rails activerecord

有没有办法执行以下操作?:

>items=Item.where('location_id=?',8)
>items.count # 12; now delete all of them
>items.destroy

我知道我可以做Item.destroy_all('location_id=?',8)但我宁愿在破坏性手术前检查我的工作。

2 个答案:

答案 0 :(得分:3)

您可以通过ActiveRecord::Relation#destroy_all method

来完成
items.destroy_all

Item.destroy_all(location_id: 8)

每条记录将逐一销毁。如果您想快速删除它而无需额外检查,请改为使用delete_all

items.delete_all
# or
Item.delete_all(location_id: 8)

答案 1 :(得分:2)

该方法称为#destroy_all

items.destroy_all