2010-12-02 32 views
10

我有一個很奇怪的錯誤。在我的代碼有<%= time_ago_in_words(game.created_at) %>time_ago_in_words =>「在{{count}}天。」?

它的本地工作和我的臨時服務器上,但不是我生產服務器上:

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

我得到「in {{count}} days.

古怪,如果返回的數字是1,它工作。 (例如:1 hour ago or 1 day ago)。

任何想法都會非常有幫助。 Thks

+0

什麼版本的Rails?你檢查過`created_at`值是否理智? – Matchu 2010-12-02 00:50:09

+0

2.3.8,我用相同的數據庫測試我的本地,所以created_at具有相同的格式。我想知道這不是一個英雄問題。 Thks – Alextoul 2010-12-02 07:38:10

+1

我有同樣的問題。昨天一切正常,但今天我重新安裝了我的Windows,以及帶有Rails和所有寶石的Ruby ...然後我從Heroku中取出應用程序的數據庫,然後......我看到「{{count}}」無處不在: ) – sNiCKY 2010-12-02 16:52:35

回答

13

Rails在助手中使用了一些不贊成使用的語法,然後在最新的Ruby版本中刪除了它。如果您使用的是Heroku,請嘗試告訴您的生產實例使用Rails 2.3.9。否則,你也可以嘗試降級Ruby。

的修改記錄: http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

變化國際化命名插語法從已過時您好{{名}}到1.9原生你好%{name}的

這看起來像它會解決您的問題。

0

這發生在我身上。

我試着插入 「日期時間:」 從

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

節到我自己的en.yml,希望能覆蓋任何怪異的東西。但是,然後我的應用程序無法啓動,並且它完全在插入「datetime:」的位置上抱怨語法錯誤。 (當我看起來我無法用我的單眼找到那個出乎意料的語法錯誤)。

2

這聽起來像你沒有開發版中的Ruby in Production一樣的版本。我個人還是讓Ruby 1.8.7在我的發展,並在控制檯中,我不斷收到以下消息時,我使用time_ago_in_words:

的{{鍵}}插值的I18n消息語法已過時。請改用%{key}。

現在這條關於廢棄的消息不是來自Rails,它來自Ruby。而且由於time_ago_in_words是一個Rails助手,Rails中的這個特性看起來好像與已經被刪除的Ruby更新版本不兼容。

所以,除非你手動以某種方式猴子修補實際的助手(我不會推薦它),你可以升級Rails或降級Ruby,使它們兼容。