【发布时间】:2014-12-10 20:25:48
【问题描述】:
我正在设备上创建一个状态,该状态将根据设备发回读数后的时间长短为该设备设置指示器颜色。这是我目前的解决方案:
def indicator(device)
# ...
time = latest_event_time(device.id)
case
when time < 12.hours.ago
:red
when time.between?(12.hours.ago, 2.hours.ago)
:yellow
when 2.hours.ago < time
:green
else
:gray
end
end
private
def latest_event_time(dev_id)
# Get latest event time from database
end
我希望能够简单地检查 time 是在指定时间范围之前、期间还是之后,可能是这样的:
time <=> (2.hours.ago...12.hours.ago)
是否有我遗漏的方法,或者另一种更简洁的方法来完成此任务?
【问题讨论】:
标签: ruby-on-rails ruby time range