2010-12-02 13 views
10

私は非常に奇妙なバグを抱えています。私のコードでは、私は<%= time_ago_in_words(game.created_at) %>time_ago_in_words => "{{count}}日以内に。"

を持っている私のステージングサーバー上ではなく、私の本番サーバー上でローカルに動作しています:

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

場合、私は、変なふうに「0​​」

を取得します返された数は1です、それは動作します。 (例:1 hour ago or 1 day ago)。

非常に参考になります。 Thks

+0

どのバージョンのRailsですか? 'created_at'の値が正常であることを確認しましたか? – Matchu

+0

2.3.8、同じデータベースで私のローカルをテストするので、created_atは同じフォーマットです。私はそれが英雄問題ではないかと思います。 Thks – Alextoul

+1

私は同じ問題があります。昨日はすべて正常に動作していましたが、今日はWindowsとRuby with Railsとすべての宝石を再インストールしました...そして、私はHerokuからアプリのdbを取り出していました... "{{count}}" ) – sNiCKY

答えて

13

Railsはヘルパーで廃止された構文を使用していましたが、最新のRubyバージョンでは削除されました。 Herokuのようなものを使用している場合、Rails 2.3.9を使用するように本番インスタンスに指示してください。それ以外の場合は、Rubyをダウングレードすることもできます。 1.9ネイティブこんにちは%{name}のにこんにちは、非推奨{{名前}}から http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

変更国際化という名前の補間構文:

は、変更履歴を参照してください。

これは問題を解決するようです。

+0

ありがとう、それは働いています。さらに、Rails 3にもっと簡単に移行するのに役立ちます。 – Alextoul

0

これは私に起こっています。任意の奇妙なものを上書きすることを望んで、私自身のen.ymlに

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-US.yml

からセクション:

私は "日時" を挿入しようとしました。しかし、私のアプリは起動せず、 "datetime:"の挿入箇所に文法エラーがあると文句を言う。 (私が見たとき、私は片眼でその文法的な誤りを見つけることができません)。

+0

スマッジ、あなたはどこですか?私はレール2.3.9に切り替えた。 – kitschmaster

2

あなたが開発で行ったのと同じバージョンのRubyをプロダクションで持っていないように思えます。個人的に私はまだRubyは私の開発にとコンソールに1.8.7持って、私はtime_ago_in_wordsを使用するとき、私は常に、次のメッセージが表示されます:国際化メッセージで

{{キー}}補間構文は廃止されました。代わりに%{key}を使用してください。

このメッセージは、Railsのものではなく、Rubyのものです。そして、time_ago_in_wordsはRailsヘルパーなので、Railsのこの機能はRubyのこれ以降のバージョンと互換性がないようです。

実際のヘルパーを何らかの方法で手動で猿にパッチしたいのでない限り(私はそれをお勧めしません)、Railsをアップグレードするか、互換性があるようにRubyをダウングレードすることができます。

2

最近、i18n gemを追加した後も同じ問題がありました。私は現在、Railsのアップグレードが実行可能なオプションではないプロジェクトに取り組んでいます。この記事を読んで、time_ago_in_wordsをほぼリッピングした後、私はいくつかの同様の投稿を見つけました。

http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.ymlを私のconfig/locales/en.ymlにコピーすると、ここに示唆されています:time_ago_in_words issue great great。 ymlは空白について非常に厄介なことに気をつけてください。

関連する問題