使用distance_of_time_in_words显示剩余时间

Mig*_*ana 2 ruby ruby-on-rails helpermethods

所以我希望项目Items在7天后显示为剩余,项目将被删除.我试过了

 <%= distance_of_time_in_words(item.created_at, item.created_at + 7.days) %> 
Run Code Online (Sandbox Code Playgroud)

但我得到的就是所有物品的"7天".任何人都可以简单地使用这个帮助方法吗?

Mar*_*oij 5

让我们看看文档,看看它做了什么distance_of_time_in_words:

distance_of_time_in_words(from_time,to_time = 0,options = {})
以秒为单位报告两个Time,Date或DateTime对象或整数之间的大致时间距离.

因此它报告第一个参数和第二个参数的时间差.现在,你正在做:

distance_of_time_in_words(item.created_at, item.created_at + 7.days)
Run Code Online (Sandbox Code Playgroud)

item.created_atitem.created_at七天之间的差异总是......七天;-)

我认为这是七天后总会被删除的东西?在这种情况下,你想要的是当前日期和创建日期加上七天之间的差异,你可以得到:

distance_of_time_in_words(Time.now, item.created_at + 7.days)
Run Code Online (Sandbox Code Playgroud)