Уничтожение объекта внутри внешнего вида на самом деле плохая практика.
Я могу подумать о двух методах: вы можете сохранить идентификаторы объектов, которые вы хотите уничтожить, в массиве или пометить их в базе данных, чтобыбыть удаленным (добавив новый логический столбец по умолчанию в false и сделайте update_column :to_destroy, true
).
Таким образом, вы можете сделать Thing.where (id: ids_to_destroy) .destroy_all (или что-то вроде Thing.where (to_destroy: true)) .destroy_all, если вы отметили их) после цикла.
Какой метод использовать, зависит от ваших потребностей.Я бы пошел с сохранением идентификаторов в массиве, так как он требует меньше изменений, но, возможно, вы обрабатываете действительно большой объем данных, и сохранение действительно очень большого массива в памяти - это слишком много (не обычный случай, так как вы просто храните идентификаторы,но это возможно, хотя).