从 Rails 类中删除现有对象的最有效方法是什么?我有一个对象数组
person_array = [Person1, Person2, Person3]
我的目标是从他们所在的表中删除该数组中的所有人员。
所以我有一个他们目前所属的 People 类。
我在想类似的东西People.delete(person_array)
似乎正在执行正确的 SQL 语句。我如何让这些删除语句实际更改我的 People 表?
从 Rails 类中删除现有对象的最有效方法是什么?我有一个对象数组
person_array = [Person1, Person2, Person3]
我的目标是从他们所在的表中删除该数组中的所有人员。
所以我有一个他们目前所属的 People 类。
我在想类似的东西People.delete(person_array)
似乎正在执行正确的 SQL 语句。我如何让这些删除语句实际更改我的 People 表?
不确定您是否需要获取 id 或 Activerecord 会为您执行此操作。
Person.delete_all person_array.map(&:id)
由于您已经拥有这些对象,因此您可以直接调用destroy_all
它们:
Person.destroy_all(:id => person_array)
与 不同delete_all
的是,这将调用模型的回调,这可能需要更长的时间,但会保持完整性。