我明白一個人可以做類似Model.destroy_all(status: "inactive")
。我希望我的情況很簡單,但我不能那樣做。我有一個加密的字符串列,通過attr_encrypted gem映射到一個整數數組,這使得這個麻煩。如何從我的數據庫中刪除Rails中的ID /對象數組?
基本上,我有這樣一個數組: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)'更好的優化。 – hlcs 2017-06-30 16:12:10