Для данной Модели продукта, которая имеет много Цветов
class Product < ApplicationRecord
has_many :colors, dependent: :destroy
end
и Модель Цвета, которая принадлежит Продукту, с after_destroy
, которые уничтожают продукт, если у него больше нет цветов.
class Color < ApplicationRecord
belongs_to :product
after_destroy do |color|
product = color.product
product.destroy! if product.colors.count.zero?
end
end
Когда я уничтожаю Цвет или даже все Цвета, все работает хорошо.Но когда я пытаюсь уничтожить Продукт, он поднимает: ActiveRecord::RecordNotDestroyed (Failed to destroy the record)
в этой строке внутри Цветовой модели: product.destroy! if product.colors.count.zero?
После небольшого теста я думаю, что это связано с этим циклом.уничтожить, что он создан между продуктом и цветами.Есть ли способ определить, уничтожается ли объект Color зависимостью has_many или нет?