Rails : validates_associated

En cours de développement et à la validation d’un formulaire de création d’élément, nous avons obtenu un comportement étrange : notre objet ne s’est pas enregistré. Pourtant, toutes les conditions des validates semblaient remplies.

La méthode .valid? appliquée sur notre objet retournait en effet false et la liste .errors.messages contenait le message suivant :

translation missing: fr.activerecord.errors.models.element.attributes.parents.invalid

En effet, notre élément est associé à un autre. Le problème est que ce dernier n’est pas valide (il avait été enregistré avant qu’on ajoute les validates dans le modèle).

Pour modifier le message d’erreur, on peut ajouter le validateur suivant à notre modèle :

validates_associated :parents, message: "Le parent associé n'est pas valide."

Et le lire en faisant :

@element.errors[:parents].last

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.