3

我想顯示日期時間的單詞,如「1小時前」,我試着下面的方法,但它返回字符串格式返回HTML,如下所示。Rails 3.2時間前在文字方法返回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>" 
+1

你右邊的文檔像它應該返回爲特林... http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words。我不知道一個解決方案,但感謝您提出這個問題,以便我和其他人稍後可以留心。 – rovermicrover

回答

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" 

你可以嘗試在helper對象上調用此方法,就像我在控制檯(rails c)中那樣?什麼是輸出?

+0

感謝您的回覆,我已經在上面的問題中更新了輸出,請檢查。 – richesrahul

+0

你使用什麼Rails版本?如果什麼都行不通,那麼唯一的選擇是明確定義這些翻譯,如[here - link](http://stackoverflow.com/questions/4007073/rails-distance-of-time-in-words-returns烯大約-X-小時)。你可以找到默認翻譯的文件[這裏 - 鏈接](https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en.yml)。 – konole

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>" 
+1

我得到了相同的結果 - HTML中的字符串(Rails 4)。 –

0

試試這個:

time_ago_in_words(Time.now)