10
votes

time_ago_in_words => "in {{compte}} jours."?

J'ai un bug très étrange. Dans mon code, j'ai <% = time_ago_in_words (jeu.created_at)%>

Cela fonctionne localement et sur mon serveur de stadification mais pas sur mon serveur de production:

Exemple: http://hockey-community.com/games/show/45

i get " in {{comptez}} jours. "

bizarre, si le nombre renvoyé est 1, cela fonctionne. (ex: il y a 1 heure ou il y a 1 jour ).

Une idée serait très utile. Thks


3 commentaires

Quelle version des rails? Avez-vous vérifié que la valeur créée_at est sain d'esprit?


2.3.8, je teste mon local avec la même base de données, donc créé_at a le même format. Je me demande si ce n'est pas un problème d'héroku. Carreau


J'ai le même problème. Hier, tout allait bien, mais aujourd'hui, j'ai réinstallé mes fenêtres, ainsi que Ruby avec des rails et toutes les pierres précieuses ... Puis j'ai tiré la DB de mon application de Heroku et ... Je vois "{{compteur}}" S partout: )


4 Réponses :


0
votes

Cela m'arrive à.

J'ai essayé d'insérer la section "DateTime:" de

https://github.com/ Svenfuchs / Rails-I18N / BLOB / MASTER / RAILS / LOCAL / EN-US.YML

Dans mes propres fr.yml, dans l'espoir de remplacer toute autre chose étrange. Mais alors mon application ne démarre pas et se plaint d'une erreur de syntaxe exactement sur le point d'insertion "DateTime:". (Quand je regarde, je ne peux pas localiser cette erreur de syntaxe non insuffisante avec mon seul œil).


1 commentaires

Smudge, toi où va bien! Je suis passée à des rails 2.3.9 et les choses fonctionnent comme elles le devraient à nouveau.



2
votes

Cela me semble que vous n'avez pas la même version de Ruby dans la production que vous le faites dans le développement. Personnellement, j'ai toujours Ruby 1.8.7 dans mon développement et dans la console, je reçois constamment le message suivant lorsque j'utilise Time_Ago_in_words:

la syntaxe d'interpolation {{Key}}} Syntaxe d'interpolation dans les messages I18N est obsolète. Veuillez utiliser% {Key} à la place.

Maintenant, ce message sur la dépréciation ne vient pas des rails, cela vient de Ruby. Et puisque Time_Ago_in_Words est une assistance Rails, il semble que cette fonctionnalité dans Rails ne soit pas compatible avec les versions ultérieures de Ruby où cela a été supprimé.

Donc, à moins que vous ne souhaitiez manuellement à singe patch l'aide réelle d'une certaine manière (je ne le recommanderais pas), vous pouvez améliorer les rails ou rétrograder RUBY afin qu'ils soient compatibles.


0 commentaires

13
votes

rails utilisait une syntaxe obsolète dans l'aide qui a ensuite été supprimée dans la dernière version de Ruby. Si vous utilisez quelque chose comme Heroku, essayez de dire à votre instance de production d'utiliser des rails 2.3.9. Sinon, vous pouvez aussi essayer de diminuer de rubis.

Voir le changelog: http://weblog.rubyonRails.org / 2010/9 / 4 / Ruby-On-Rails-2-3-9-Publié

Modifications I18N nommée-INTERPOLATION Syntaxe à partir du bonjour obsolète {{nom}} au 19-natif Hello % {nom} .

Cela semble que cela réparera votre problème.


1 commentaires

Merci beaucoup, ça marche. De plus, cela m'aidera à passer à des rails 3 plus facilement.



2
votes

J'ai eu le même problème après récemment ajouté le gemme I18N. Je suis sur un projet où la mise à niveau des rails n'est actuellement pas une option viable. Après avoir lu à travers cet article et presque déchirant la tige_ago_in_words, j'ai trouvé plusieurs postes similaires.

Copie http: // gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml dans ma configuration / local / fr.yml Comme suggéré ici: time_ago_in_words problème a fonctionné super. Sachez simplement que YML est très finky sur l'espace blanc.


0 commentaires