从类Ruby中删除已保存的对象

时间:2012-07-24 00:22:00

标签: ruby-on-rails ruby ruby-on-rails-3

从Rails类中删除现有对象的最有效方法是什么?我有一个对象数组

person_array = [Person1, Person2, Person3]

我的目标是从他们所属的表中删除该数组中的所有人。

所以我有一个他们目前属于的People类。

我在考虑类似People.delete(person_array)的东西,似乎正在执行正确的SQL语句。如何让这些删除语句实际更改我的People表呢?

2 个答案:

答案 0 :(得分:0)

不确定是否需要获取ID或Activerecord会为您做到这一点。

Person.delete_all person_array.map(&:id)

答案 1 :(得分:0)

由于您已拥有这些对象,因此您只需与他们联系destroy_all

Person.destroy_all(:id => person_array)

delete_all不同,这将调用模型的回调,这可能需要更长时间,但会保留完整性。