开发者

time_ago_in_words => "in {{count}} days."?

I'm havi开发者_如何学Cng a very weird bug. In my code I have <%= time_ago_in_words(game.created_at) %>

It's works locally and on my staging server but NOT on my production server:

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

I get "in {{count}} days."

Weirdly, if the number returned is 1, it works. (ex: 1 hour ago or 1 day ago).

Any idea would be very helpful. Thks


Rails was using some deprecated syntax in the helper which then got dropped in the latest Ruby version. If you are using something like Heroku, try telling your production instance to use Rails 2.3.9. Otherwise you can also try downgrading Ruby.

See the changelog: http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

Changes i18n named-interpolation syntax from the deprecated Hello {{name}} to the 1.9-native Hello %{name}.

This looks like it will fix your problem.


It sounds to me like you don't have the same version of Ruby in Production as you do in Development. Personally I still have Ruby 1.8.7 in my Development and in the Console, I constantly get the following message when I use time_ago_in_words:

The {{key}} interpolation syntax in I18n messages is deprecated. Please use %{key} instead.

Now this message about deprecated does not come from Rails, it comes from Ruby. And since time_ago_in_words is a Rails helper, it seems like this feature in Rails is not compatible with the later versions of Ruby where this has been removed.

So unless you manually want to monkey patch the actual helper in some way (I wouldn't recommend it) you can either upgrade Rails or downgrade Ruby so that they are compatible.


I had the same problem after recently adding the i18n gem. I'm on a project where upgrading Rails isn't currently a viable option. After reading through this post and nearly ripping out time_ago_in_words, I found several similar posts.

Copying http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml into my config/locales/en.yml as suggested here: time_ago_in_words issue worked great. Just be aware that yml is very finicky about white space.


This is happening to me to.

I tried inserting the "datetime:" section from

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

into my own en.yml, hoping to override any weird stuff. But then my app does not start and it complains about a syntax error exactly on the spot of insertion "datetime:". (when I look I can not locate that unexisting syntax error with my single eye).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜