У меня есть этот код:
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
В 1-й итерации действие уничтожения прекрасно работает с:
Model.where(type: type1, id: 11)
Во 2-й итерации действие уничтожения прекрасно работает с:
Model.where(type: type2, id: 12)
В 3-й итерации уничтожить действие FAILS с помощью:
Model.where(type: type3, id: [13,14])
На 3-й итерации destroy
завершится неудачно, потому что запрос возвращает две записи, а действие уничтожения завершится неудачей, поскольку оно отправит неверное количество аргументов (1 вместо 2).
Если я использую destroy_all
, он будет работать для 3-й итерации, но потерпит неудачу для первых двух.
Как я могу исправить решение выше?