Rails affiche tous les messages d'erreur de validation associés à un champ donné. Si j'ai trois validates_XXXXX_of :email
, et que je laisse le champ vide, j'obtiens trois messages dans la liste d'erreurs.
Exemple :
validates_presence_of :name
validates_presence_of :email
validates_presence_of :text
validates_length_of :name, :in => 6..30
validates_length_of :email, :in => 4..40
validates_length_of :text, :in => 4..200
validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
<%= error_messages_for :comment %>
me donne :
7 erreurs ont empêché l'enregistrement de ce commentaire
Il y avait des problèmes avec les champs suivants :
Le nom ne peut pas être vide
Le nom est trop court (minimum de 6 caractères)
L'email ne peut pas être vide
L'email est trop court (minimum de 4 caractères)
L'email est invalide
Le texte ne peut pas être vide
Le texte est trop court (minimum de 4 caractères)
Il est préférable d'afficher un message à la fois. Y a-t-il un moyen facile de résoudre ce problème ? Il semble simple d'avoir une condition du type : Si vous trouvez une erreur pour :email
, arrêtez la validation de :email
et passez au champ suivant.