7
votes

RUBY ON RAILS: Comment personnaliser le message d'erreur de validation?

J'ai un code suivant: xxx

message d'erreur produit est "nom de nom ne peut pas être vide" Au lieu d'utiliser le nom d'attribut actuel (dans ce cas «Nom»), je veux Afficher le message en tant que «nom d'enregistrement ne peut pas être vide». Comment écraser le message par défaut sur les validations? J'ai essayé d'ajouter: message Mais cela n'a pas fonctionné ...

merci!


0 commentaires

3 Réponses :


7
votes

Ce sera le truc: xxx

ou l'ancienne version de syntaxe de fusée de hachage: xxx


3 commentaires

Mais je vois toujours le commentaire comme "Le nom de l'enregistrement de nom ne peut pas être vide" Je veux me débarrasser du mot "nom" du message ...


Mais ce problème est lié à votre vue.


Vous avez définitivement un code comme: <% modèle.Errors.each fo | nom, erreur | %> <% = nom%> <% = ERROR%> <% END%> . Le <% = nom%> est le premier nom proviennent.



14
votes

in fr.yml Fichier Définissez les touches personnalisées comme suit: xxx

Cette touche sera utilisée automatiquement lorsque des erreurs sont générées.

Référence: http://geguides.rubyonRails.org/i18n .html # Traductions-for-actif-dossiers-modèles (5.1 Traductions des modèles d'enregistrement actif)


4 commentaires

Jamais entendu parler de ça. Wow, appris quelque chose de nouveau - bonne réponse! :)


@ Ram88 - Deuxième que. Très belle réponse en effet, va certainement utiliser cela. J'avais déjà utilisé un gemme, plus de quelques mois de retour, pour des messages d'erreur personnalisés. Le gemme est hébergé chez github.com/nwise/custom_error_message .


Aux futurs lecteurs, au cas où il n'est pas clair, le fichier fr.yml vit dans config / locales .


Sir peut montrer votre code? J'ai eu un message d'erreur dit "ne peut pas charger les traductions en.yml, attendues qu'il retourne un hachage, mais ne"



6
votes

C'est un peu tard maintenant (après environ 35 jours) pour répondre à cela. Donc, désolé pour cela. Mais je voulais juste partager que j'avais utilisé un gemme, plus de quelques mois, pour des messages d'erreur personnalisés.

Ce plugin vous permet d'omettre le nom d'attribut pour des messages spécifiques. Tout ce que vous avez à faire est de commencer le message avec un caractère '^'.

je viens de vérifier à https://github.com/nwise/custom_error_message & Il n'a pas été mis à jour depuis mars. Donc, je l'ai probablement utilisé au bon moment.

PS: votre réponse pour la définition des clés personnalisées dans le fichier YML est plus appropriée.


0 commentaires