Как пропустить обратный вызов ассоциации при уничтожении

В моем проекте скидка принадлежит многим предприятиям и принадлежит им. У меня есть обратный вызов ассоциации. правило, что скидка не может удалить ее последний бизнес (чтобы поддерживать, что всегда есть бизнес для каждой скидки):

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 как в контроллерах?

12
задан lulalala 26 December 2011 в 10:14
поделиться