Как пропустить обратный вызов ассоциации в уничтожить - PullRequest
10 голосов
/ 26 декабря 2011

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

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 Ответ

20 голосов
/ 26 декабря 2011

Вы можете позвонить discount.delete, который пропустит обратные вызовы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...