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