我正在尝试翻译我的Rails 3应用程序,阅读http://guides.rubyonrails.org/i18n.html#adding-date-time-formats上的初级读本,然后从https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale(我的情况下为de.yml
)下载相应的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
的{{1}}部分,并将其重命名为de.yml
,但这也不起作用。
我错过了一些明显的东西吗?
答案 0 :(得分:0)
好的,这里有两种不同的方法:
l
方法采用Date,Time或DateTime对象,并根据您的I18n规则返回格式化版本。
time_ago_words
采用相同的参数,并使用I18n吐出格式化的字符串。
在您的示例中,您尝试使用两者!简而言之,您所需要的只是<%= time_ago_in_words(some_model.created_at) %>
。