Rails新手问题。目前我有一个应用程序,包括:
<%= time_ago_in_words(post.created_at) %> ago.
这会产生类似于:
的输出“6天,21小时,56分钟前。”
我想简化和概括这一点,更像是:
“6天前”或“5小时前”或“几秒钟前”等
<%= time_ago_in_words(post.created_at) %>
按预期工作(即短而甜)。为什么不同? time_ago_in_words
输出是否依赖于使用的rails版本?答案 0 :(得分:1)
辅助方法time_ago_in_words
只是distance_of_time_in_words
的包装器,它将参数to_time
发送到固定Time.now
。
如果您尚未准备升级,可以尝试将Rails 3.2.13的distance_of_time_in_words
方法直接复制到ApplicationHelper中。
我无法验证,因为我没有你的版本。但值得一试。
来源在这里,感谢tessi提供的链接:http://apidock.com/rails/v3.2.13/ActionView/Helpers/DateHelper/distance_of_time_in_words
答案 1 :(得分:0)
我知道你可以删除秒,你需要添加“前”部分。这似乎可以在我的应用程序中使用ruby 1.9.3和rails 3.2.18。
<%= time_ago_in_words(post.created_at, include_seconds=false) + " ago" %>
答案 2 :(得分:0)
你可以尝试:
time_ago_in_words(post.created_at).split(',').first
哪个将始终显示最重要的单位。但是,这不会“圆”正确; 1 month, 29 days ago
会显示为1 month
,即使您可能希望它为2 months
。