Personnalisation de Concevoir des messages d'erreur dans Rails 3?
Je suis à l'aide de concevoir pour gérer l'authentification. Dans l'ensemble je l'aime, mais j'aimerais personnaliser l'affichage des erreurs un peu. Droit maintenant, j'ai la suite dans ma vue.
<div class="field <% if resource.errors[:email].present? %>error<% end %>">
<%= f.label :email, "Email:" %><br />
<% if resource.errors[:email].present? %>
<ul>
<% resource.errors[:email].each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<%= f.text_field :email, :class => "text" %>
</div>
Mais quand il y a un problème avec l'e-mail, le message affiché est comme suit: is invalid
. Ce n'est pas très convivial, mais je ne trouve pas où ce message est en cours de mise. Il ne semble pas être en concevoir.fr.yml, mais je suis peut-être donnant sur quelque chose.
Une idée où je peux personnaliser les messages d'erreur?
Merci!
OriginalL'auteur Joshua Clanton | 2011-04-30
Vous devez vous connecter pour publier un commentaire.
Ces validations sont tous définis dans le les validations module, et d'utiliser les Rails par défaut des messages d'erreur.
Vous pouvez remplacer ces dans votre modèle.
:validatable
à partir du modèle et le transfert de toutes les validations dans le modèle.Les Rails façon de l'accomplir sans avoir à réécrire Concevoir des validations est ici
OriginalL'auteur
Vous pouvez configurer les messages d'erreur dans le fichier de paramètres régionaux: /config/locales/concevoir.fr.yml
Qui devrait avoir quelque chose comme le code ci-dessous et que vous pouvez facilement modifier à votre goût:
Pour une explication plus détaillée, consultez cette url (avec captures d'écran). Le Personnalisation des Messages d'Erreur section dans l'article.
OriginalL'auteur
Si vous souhaitez modifier les messages des douanes pour les validations ajouté par l'Appareil, vérifiez Christian réponse.
Sinon, si la validation que vous souhaitez personnaliser est une norme de validation comme format d'e-mail, vous n'avez pas besoin de retirer le dispositif de validation et de les remplacer par votre propre. Une meilleure façon de gérer cela est de rendre l'utilisation de la valeur par défaut des messages d'erreur de priorité figurant dans le Rails guides et remplacer le message d'erreur pour un domaine particulier et d'une validation en particulier.
Pour cette question en particulier, de la clé que vous devez ajouter dans
config/locales/en.yml
pour changeris invalid
avec un message personnalisé pour e-mail des erreurs estactiverecord.errors.models.user.attributes.email.invalid
(oùuser
est le nom du modèle):Rails pour rechercher un message à afficher pour une validation dans l'ordre suivant:
OriginalL'auteur