У меня есть три класса: School
, Account
и Administratorship
.
Школа
has_many :administatorships
has_many :administrators, :through => :administratorships
Счет
has_many :administratorships
Администрация
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
, чтобы проверить, не мешает ли это добавить ошибку, но это не так.Кажется, что наличие ошибок в модели не предотвращает уничтожение.
Поэтому мой вопрос, есть ли способ предотвратить уничтожение с помощью проверок?Я понимаю, что мог бы определить метод, который уничтожает, только если вышеуказанное условие выполнено, но кажется, что подход проверки является более элегантным решением.