2010-10-18 4 views
0

Mon scénario de concombre teste si mes nouvelles peuvent être créées sans titre. Cela doit montrer "Vous devez spécifier un titre.".I18n ne traduit pas dans les modèles par le concombre

Dans mon modèle de nouvelles, j'ai:

validates_presence_of :title, :message => I18n.t(:specify, :what => 'a title') 

et mes en.yml ont obtenu:

specify: "You must specify %{what}." 

mais quand je lance mon test, est « le résultat manquant traduction: fr , spécifiez ". De l'autre côté, si mon I18n.t est dans un contrôleur, il fonctionne parfaitement. Et quand je vais au navigateur pour tester par moi-même, cela fonctionne aussi.

rails 3.0.0, concombre 0.9.2 et 0.4.1 i18n

Merci à l'avance.

Répondre

0

Je n'ai aucune réponse directe à votre question, mais après un bref coup d'oeil, je vous suggère d'utiliser la recherche de message d'erreur ActiveRecord comme décrit ici: Rails I18n API

Dans votre exemple, la validation alors ressembler à ceci:

validates_presence_of :title 

le en.yml aurait l'entrée suivante:

activerecord: 
    errors: 
    messages: 
     blank: "You must specify the %{attribute}." 

Ou, pour rendre plus précis le message, utilisez l'un des d'autres chemins qui sont recherchés automatiquement:

activerecord.errors.models.[model_name].attributes.[attribute_name].blank 
activerecord.errors.models.[model_name].blank 
activerecord.errors.messages.blank 

Je ne sais pas si cela résout votre problème initial, mais il peut être la peine d'essayer.

Questions connexes