3

我想用文字显示日期时间,例如“1 小时前”,我尝试了以下方法,但它以字符串格式返回返回 html,如下所示。

方法

helper.time_ago_in_words(Time.now)

结果

=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"

导轨控制台输出:

>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
>> I18n.locale = :de
=> :de
>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: de.less_than_x_minutes\">Less Than X Minutes</span>"
>> I18n.locale = :en
=> :en
>> helper.time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
4

3 回答 3

1

您在配置中使用任何语言环境吗?英语肯定是默认的,它应该可以正常工作。

2.0.0p0 :001 > helper.time_ago_in_words(Time.now)
 => "less than a minute" 
2.0.0p0 :002 > I18n.locale = :de
 => :de 
2.0.0p0 :003 > helper.time_ago_in_words(Time.now)
 => "translation missing: de.datetime.distance_in_words.less_than_x_minutes" 
2.0.0p0 :004 > I18n.locale = :en
 => :en 
2.0.0p0 :005 > helper.time_ago_in_words(Time.now)
 => "less than a minute" 

您可以尝试在辅助对象上调用此方法,就像我在控制台(rails c)中所做的那样?输出是什么?

于 2013-04-13T22:24:10.237 回答
0

在 Rails 控制台中,如果我只使用 ActionView::Helpers 中的 time_ago_in_words,我将收到 translation_missing 错误消息。但是,如果我从 ActionView::Helpers::DateHelper 中包含,它将按预期工作。

作品:

[2] pry(main)> include ActionView::Helpers::DateHelper
=> Object 
[3] pry(main)> time_ago_in_words(Time.now)
=> "less than a minute"

翻译缺失:

[1] pry(main)> include ActionView::Helpers
=> Object [2] 
pry(main)> time_ago_in_words(Time.now)
=> "<span class=\"translation_missing\" title=\"translation missing: en.less_than_x_minutes\">Less Than X Minutes</span>"
于 2013-09-12T21:24:34.463 回答
0

尝试这个:

time_ago_in_words(Time.now)

于 2013-11-03T15:30:37.933 回答