如何使用多个值循环哈希并使用destroy?

时间:2018-05-10 22:04:50

标签: ruby-on-rails

我有这段代码:

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次迭代,但前两次会失败。

如何修复上述解决方案?

0 个答案:

没有答案