2010-07-30 5 views
2

J'ai une internationalisation simple:Exclure nom d'attribut préfixer dans le message d'erreur

attributes: 
    user: 
    login: Login 
errors: 
    template: 
    header: "Errors" 
    body: "" 
    models: 
    user: 
     attributes: 
     login: 
     taken: "The chosen {{attribute}} is already registered" 

Le message d'erreur résultant est la suivante:

Login Le login choisi est déjà enregistré

Il semble, comme Rails préfixe automatiquement le message d'erreur avec le nom de l'attribut. Cela me force à organiser les messages d'une seule façon - avec le nom de l'attribut comme premier mot.

J'ai besoin le message d'erreur suivant:

Le login choisi est déjà enregistré

Comment puis-je configurer Rails pour ne pas préfixer le message d'erreur avec le nom d'attribut?

+1

Je ne marquerai pas votre question comme un doublon car elle est légèrement différente en raison de l'utilisation de l'internationalisation, mais voir ma réponse précédente à la question suivante pour voir si cela vous aide: [supprimer le nom de champ du message de validation d'objet] (http://stackoverflow.com/questions/2951333/remove-field-name-from-object-validation-message/2951461#2951461) – mikej

+0

En fait, c'est sur le point de m'aider, pour une question similaire qui maintenant ne sera pas doit être demandé. – NinjaCat

Répondre

12

Vous devez spécifier le format du message d'erreur afin de supprimer le nom du modèle. Je crois que c'est seulement possible à partir de Rails 3.2.6 et plus. There are more details sur le chapitre I18n dans les guides Rails. La valeur par défaut est .

+1

Cela fonctionne également dans Rails 4.0.2. – Deborah

+0

génial! Cela peut-il être fait par modèle? – MegaTux

+0

@MegaTux Je le crois, oui. Mais je ne suis pas sûr. – Mohamad

Questions connexes