J'ai des attributs avec une validation spéciale où j'utilise la clause message pour afficher un message spécial juste pour cette validation. Voici un exemple :
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: "is not a valid email address format." },
uniqueness: { case_sensitive: false }
Je voudrais traduire le message ici mais je ne sais pas comment faire.
J'ai vu des exemples où ils tapent quelque chose comme ceci : message : t("quelque_valeur_ici"). Je ne suis pas sûr de la désignation. J'ai essayé quelque chose comme ceci : message : t(:bad_email). J'ai fait ce qui suit dans mon fichier yaml, juste pour essayer quelque chose.
activemodel:
errors:
bad_email: "is not a valid email address format."
Lorsque j'ai essayé d'accéder à mon application Rails, j'ai obtenu l'erreur suivante :
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
J'ai également essayé ceci dans mon fichier yaml :
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
J'ai fait des recherches sur ce sujet toute la journée. Tout ce que je trouve, c'est de remplacer les hachages d'erreurs intégrés comme blank ou empty. Existe-t-il un moyen de créer des hachages d'erreurs personnalisés et de les remplacer dans le modèle ? Pour l'instant, je n'arrive pas à faire fonctionner le T tel qu'il est codé. J'espère que le problème vient de la façon dont j'ai configuré mon fichier yaml. J'ai vu différentes versions de la façon de le configurer. Je ne sais pas si je dois mettre cela sous activemodel ou activeecord. J'ai pensé à activemodel puisque c'est là que se trouve le message personnalisé que je veux traduire.
Toute aide serait appréciée. C'est la dernière pièce que je dois régler avant de lancer ma première traduction de l'application.
MISE À JOUR 7/29/2013 7:30 pm CDT
bgates m'a donné un très bon départ sur la façon de configurer mes fichiers modèles pour recevoir le message personnalisé dans le fichier YAML. Cependant, j'ai fini par devoir faire la configuration suivante dans mon fichier YAML pour que les messages personnalisés soient trouvés.
activerecord:
errors:
models:
user:
attributes:
bio:
no_links: "cannot contain email addresses or website links (URLs)."
email:
bad_email: "is not a valid email address format."
username:
bad_username: "can only contain numbers and letters. No special characters or spaces."