我有这段代码:
a = {"type1"=>[11], "type2"=>[12], "type3"=>[13, 14]}
a.each do |i, k|
record = Model.where(type: i, id: k)
record.destroy if record
end
在第一次迭代中,destroy动作可以正常工作:
Model.where(type: type1, id: 11)
在第二次迭代中,destroy动作可以正常工作:
Model.where(type: type2, id: 12)
在第3次迭代中,使用以下命令销毁动作FAILS:
Model.where(type: type3, id: [13,14])
在第3次迭代中,destroy
将失败,因为查询返回两条记录,并且destroy操作将失败,因为它发送错误数量的参数(1而不是2)。
如果我使用destroy_all
,它将适用于第3次迭代,但前两次会失败。
如何修复上述解决方案?