私はここで脳が凍っていると思いますが、これを行う最善の方法を理解できません。Xより大きい時間に更新された場合
私のロケーションテーブルのいくつかのフィールドは、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
しかし、それは(「」予期しない)エラーがスローされます
誰もが私のモデルにこれを移動する方法を提案することはできますか?
- UPDATED -
これはバグか何かである場合、私はわからないが、私はいくつかの奇妙な結果を見ています。
以下の答えを使用して、私はこれを追加しました:
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
をばかげているようだし、ビューに:
def test?
Time.now > (Time.now - 1.hour)
end
返信いただきありがとうございます。 not_respondingの前に「自己」を置かなければならなかったが、それはエラーを投げている。「時間とシンボルの比較に失敗した」 – simonmorley
'self'は間違いなくnot_respondingオブジェクトですか?それで定義されているので、私はあなたがこの場合どのような方法を呼びかけているのか分かりません。 – Veraticus
oh。 self.not_respondingなし?私は定義されていないメソッド 'not_responding? – simonmorley