0

我正在尝试翻译我的 Rails 3 应用程序,在http://guides.rubyonrails.org/i18n.html#adding-date-time-formats阅​​读入门,然后从https://github.com下载相应的 yml 文件/svenfuchs/rails-i18n/tree/master/rails/localede.yml在我的例子中)。

在我的一个观点中,我有这个代码(some_model#index)......

<td><%= time_ago_in_words(some_model.created_at) %></td>

...我改变了...

<td><%=l time_ago_in_words(some_model.created_at) %></td>.

不幸的是,这给了我这个错误:

Object must be a Date, DateTime or Time object. "etwa ein Monat" given.

知道为什么这会失败吗?该created_at列已通过标准 Rails 脚手架在数据库中创建(数据库是使用 mysql2 gem 的 mysql)。

如果我从代码中删除time_ago_in_words助手......

<td><%=l some_model.created_at %></td>.

...翻译工作-但现在的日期时间对我来说当然太长了<td>

我还尝试复制该distance_in_words部分de.yml并将其重命名为,time_ago_in_words但这也不起作用。

我错过了一些明显的东西吗?

4

1 回答 1

1

好的,这里有两种不同的方法:

  1. l方法采用日期、时间或日期时间对象,并根据您的 I18n 规则返回格式化版本。

  2. 接受time_ago_words相同的参数并使用 I18n 吐出格式化的字符串。

在您的示例中,您正在尝试同时使用两者!简而言之,您所需要的只是<%= time_ago_in_words(some_model.created_at) %>.

于 2012-05-30T09:34:53.693 回答