我想我在这里有一个大脑冻结,但我无法找出最好的方法来做到这一点......提前感谢您的帮助。
我的位置表中有一些字段每 5 分钟由外部脚本更新一次。如果超过 1 小时未更新,则会向站点管理员发送一封电子邮件。
获取死区列表相当简单:
scope :not_responding, lambda {
where('last_heartbeat < ?', Time.now - 1.hour )
}
我坚持的应该很简单......我要做的就是改变位置名称的样式,如果它没有响应,它就会变成红色。
%td
- @locations.each do |locations|
= if ('locations.last_heartbeat < ?', Time.now - 1.hour )
red
-else
green
但这会引发错误(意外的',')
谁能建议如何将其移至我的模型中?
- 更新 -
我不确定这是一个错误还是什么,但我看到了一些奇怪的结果。
使用下面的答案,我添加了这个:
def not_responding?
last_heartbeat < (Time.now - 1.hour)
end
并使用:
- if location.not_responding?
red
- else
green
但是,这给了我一个关于“<”未定义的错误。
最后,我不得不这样做才能让它工作。一切似乎都很荒谬......
def not_responding
last_heartbeat <=> (Time.now - 1.hour)
end
在视图中:
- if (hotspot.not_responding_two == -1)
red
- else
green
没有意义,因为以下测试没问题:
def test?
Time.now > (Time.now - 1.hour)
end