J'ai trois classes: l'École, le Compte et le Administratorship.
L'école
has_many :administatorships
has_many :les administrateurs, :par => :administratorships
Compte
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
Maintenant, ce que je voudrais arriver, c'est que lorsque j'appelle destroy
sur une instance de Administratorship, pour ajouter une erreur dans le modèle et d'empêcher la destruction du modèle. J'ai enlevé le moins d'instruction pour voir si c'était la prévention de l'erreur d'être ajouté, ce n'était pas le cas. Il semble que le fait d'avoir des erreurs sur le modèle n'empêche pas le détruire de se produire.
Donc ma question est, est-il possible que je peux les empêcher de le détruire de se produire à l'aide de validations? Je me rends compte que je pouvais définir une méthode qui détruit seulement si la condition ci-dessus est remplie, mais il semble qu'une approche de validation est une solution plus élégante.