У меня есть три класса: 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
чтобы проверить, не мешает ли это добавить ошибку, но это не так. Кажется, что наличие ошибок в модели не предотвращает разрушение.
Итак, мой вопрос, есть ли способ предотвратить разрушение с помощью проверок? Я понимаю, что мог бы определить метод, который уничтожает, только если вышеуказанное условие выполнено, но кажется, что подход проверки является более элегантным решением.