time_ago_in_words =>“在{{count}}天内。”?

我有一个非常奇怪的错误。 在我的代码中,我有

它在本地和我的登台服务器上工作,但不在我的生产服务器上:

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

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

奇怪的是,如果返回的数字是1,它可以工作。 (例如: 1 hour ago or 1 day ago )。

任何想法都会非常有用。 THKS

Rails在帮助程序中使用了一些弃用的语法,然后在最新的Ruby版本中删除了。 如果您使用Heroku之类的东西,请尝试告诉您的生产实例使用Rails 2.3.9。 否则你也可以尝试降级Ruby。

请参阅更改日志: http : //weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

将i18n命名插值语法从已弃用的Hello {{name}}更改为1.9-native Hello %{name}

这看起来会解决您的问题。

听起来像你没有像开发中那样使用相同版本的Ruby in Production。 我个人在开发和控制台中仍然使用Ruby 1.8.7,当我使用time_ago_in_words时,我不断收到以下消息:

不推荐使用I18n消息中的{{key}}插值语法。 请改用%{key}。

现在关于弃用的这条消息不是来自Rails,而是来自Ruby。 由于time_ago_in_words是一个Rails帮助器,看起来Rails中的这个function与已删除它的Ruby的更高版本不兼容。

因此,除非你手动想要以某种方式修补实际的帮助(我不推荐它),你可以升级Rails或降级Ruby以使它们兼容。

最近添加i18n gem之后我遇到了同样的问题。 我正在进行升级Rails目前不可行的项目。 阅读完这篇文章并几乎扯掉time_ago_in_words后,我发现了几篇类似的post。

将http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml复制到我的config / locales / en.yml中,如下所示: time_ago_in_words问题很有用。 请注意,yml对于空白区域非常挑剔。

这发生在我身上。

我尝试插入“datetime:”部分

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

进入我自己的en.yml,希望覆盖任何奇怪的东西。 但是,然后我的应用程序无法启动,并且它在插入“datetime:”时完全抱怨语法错误。 (当我看起来我无法用单眼找到那个未出现的语法错误)。