如何触发 dependent: :destroy on a child only when grand-parent is deleted?

How to trigger dependent: :destroy on a child only when grand-parent is deleted?

当我删除 AdTemplate 记录时,我不希望其连接的 page_view_stats data 也被删除。但是,当我删除 Campaign 记录时,我 do 希望 ad_templates 也删除其所有 page_view_stats 记录。也许依赖: :destroy 可以接受一些 :if 条件来实现它?

class Campaign < ActiveRecord::Base
    has_many :ad_templates, dependent: :destroy
end

class AdTemplate < ActiveRecord::Base
 belongs_to :campaign
 has_many :page_view_stats
end

您可以在 Campaign

中使用 after_destroy 回调

after_destroy do # execute some logic end