Ruby on rails 有没有办法知道;“销毁”;对模型的调用来自于;相依;Rails中的关系?

Ruby on rails 有没有办法知道;“销毁”;对模型的调用来自于;相依;Rails中的关系?,ruby-on-rails,destroy,Ruby On Rails,Destroy,给定一个具有多种颜色的产品型号 class Product < ApplicationRecord has_many :colors, dependent: :destroy end 当我破坏一种颜色,甚至所有颜色时,一切都很好。 但是当我试图销毁一个产品时,它会引发一个:ActiveRecord::recordnotdestromed(未能销毁记录) 在这一行中,内部颜色模型:product.destroy!如果product.colors.count.zero? 经过一点测试

给定一个具有多种颜色的产品型号

class Product < ApplicationRecord
    has_many :colors, dependent: :destroy
end
当我破坏一种颜色,甚至所有颜色时,一切都很好。 但是当我试图销毁一个产品时,它会引发一个:
ActiveRecord::recordnotdestromed(未能销毁记录)

在这一行中,内部颜色模型:
product.destroy!如果product.colors.count.zero?


经过一点测试,我认为这与产品和颜色之间产生的循环破坏有关。有没有办法确定颜色对象是否被“has\u many”依赖项破坏?

为关联定义了4个回调(添加前、添加后、删除前和删除后)。删除后,您可能需要:

class Product < ApplicationRecord
  has_many :colors, dependent: :destroy, after_remove: :cleanup_product

  def cleanup_product(color)
    color.product.destroy if color.product.colors.empty?
  end
end
类产品
为关联定义了4个回调(添加前、添加后、删除前和删除后)。删除后,您可能需要:

class Product < ApplicationRecord
  has_many :colors, dependent: :destroy, after_remove: :cleanup_product

  def cleanup_product(color)
    color.product.destroy if color.product.colors.empty?
  end
end
类产品
您可以尝试检查
产品是否标记为销毁?
您可以尝试检查
产品是否标记为销毁?