如何在destroy中跳过关联回调

lul*_*ala 12 model ruby-on-rails

在我的项目中,折扣已经属于许多企业.我有一个关联回调规则,折扣不能删除它的最后一个业务(为了保持每个折扣总有一个业务):

has_and_belongs_to_many :businesses,
  before_remove: :check_count,

def check_count
  raise 'Cannot remove latest business!' if businesses.count == 1
end
Run Code Online (Sandbox Code Playgroud)

但是我意识到我将无法取消折扣.从那时起discount.destroy,我认为它会尝试删除业务,并且从长远来看会引发错误.

那么有没有办法解决这个问题,就像:except控制器中的某种一样?

And*_*itt 25

您可以调用discount.delete哪个将跳过回调.