如何在destroy中跳过关联回调

时间:2011-12-26 10:14:04

标签: ruby-on-rails model

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

has_and_belongs_to_many :businesses,
  before_remove: :check_count,

def check_count
  raise 'Cannot remove latest business!' if businesses.count == 1
end

但是我意识到我无法取消折扣。从我做discount.destroy开始,我认为它会尝试删除商家,并且从长远来看会引发错误。

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

1 个答案:

答案 0 :(得分:19)

您可以拨打discount.delete来跳过回调。