我知道可以这样做:
基本上,我有一个像这样的数组:
我想要能够执行类似于
我甚至尝试了以下操作:
我希望尽可能高效,并且认为
更新:我已经解决了问题,并在下面提供了答案。
Model.destroy_all(status: "inactive")
。但我的情况不是那么简单,因为我有一个加密字符串列,通过attr_encrypted gem映射到一个整数数组上,这使得操作变得繁琐。基本上,我有一个像这样的数组:
array = [object1, object2, object3, object4]
其中每个对象都是模型对象。我想要能够执行类似于
Model.destroy_all(array)
或者Model.delete_all(array)
的操作,但我无法这样做。我甚至尝试了以下操作:
Model.destroy_all(array.map(&:id))
和Model.delete_all(array.map(&:id))
但我不能成功删除它们。我希望尽可能高效,并且认为
array.map(&:destroy)
或array.map(&:delete)
效率不高,因为我会得到N
次调用。我应该这样做并将其包装在事务中吗?有更好的方法吗?更新:我已经解决了问题,并在下面提供了答案。
Model.destroy_all(id: array.map(&:id))
。我相信这比Model.destroy(array)
更优化。 - Artem P