У меня есть три класса: School, Account и Administratorship.
Школа
has_many :administatorships
has_many :administrators, :through => :administratorships
 учетная запись
has_many :administratorships
 Administratorship
belongs_to :account
belongs_to :school
before_destroy :confirm_presence_of_alternate_administratorship_in_school
protected
def confirm_presence_of_alternate_administratorship_in_school
    unless school.administrators.count(["administratorships.account_id != #{id}"]) > 0
        errors.add_to_base "The school must have at least one administrator"
    end
end
  Теперь я хотел бы, чтобы я вызвал команду destroy для экземпляра Administratorship, чтобы он добавил ошибку в модель и предотвратил разрушение модели. Я удалил оператор " unless чтобы проверить, не мешает ли это добавить ошибку, но это не так. Кажется, что наличие ошибок в модели не предотвращает разрушение.
Итак, мой вопрос, есть ли способ предотвратить разрушение с помощью проверок? Я понимаю, что мог бы определить метод, который уничтожает, только если вышеуказанное условие выполнено, но кажется, что подход проверки является более элегантным решением.