在Rails中表达"未来不到一小时"的最佳方式?

Tom*_*man 1 ruby time ruby-on-rails

如果火车离开现在不到一小时,我希望计划表中的行突出显示为红色.目前我正在做这样的计算:

if Time.zone.now + 1.hour > t[from_station]
  # do whatever
end
Run Code Online (Sandbox Code Playgroud)

这是有道理的,但我想知道是否有一种更清晰/更惯用的方式来表达这一点(我可以想象在几个月内回到这段代码并且不得不停下来思考一下Time.zone.now + 1.hour).

Pes*_*sto 12

你可以使用from_now:

if t[from_station] <  1.hour.from_now
Run Code Online (Sandbox Code Playgroud)

使用时Time.zone.now,你必须指定它,因此since可能更具可读性(from_now只是别名since):

if t[from_station] < 1.hour.since(Time.zone.now)
Run Code Online (Sandbox Code Playgroud)