0

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

person_array = [Person1, Person2, Person3]

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

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

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

4

2 回答 2

0

不确定您是否需要获取 id 或 Activerecord 会为您执行此操作。

Person.delete_all person_array.map(&:id)
于 2012-07-24T00:35:02.623 回答
0

由于您已经拥有这些对象,因此您可以直接调用destroy_all它们:

Person.destroy_all(:id => person_array)

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

于 2012-07-24T01:39:43.727 回答