3

userRails アプリケーションで、 aが だった時間を記録したいと思いますlast_seen

現在、私は次のようにこれを行いますSessionsHelper

def sign_in(user)
  .....
  user.update_column(:last_seen, Time.zone.now)
  self.current_user = user
end

しかし、これはあまり正確ではありません。ユーザーが午前 8 時にログインし、夕方になってもlast_seenデータベース列にはその時刻が含まれている可能性があるからです。

last_seenそのため、ユーザーがアクションを実行するたびに更新することを考えていました:

class ApplicationController
  before_filter :update_last_seen

  private

  def update_last_seen
    current_user.last_seen = Time.zone.now
    current_user.save
  end
end

しかし、ユーザーが行うすべてのアクションでデータベースがヒットするため、私はそのアプローチも好きではありません。

では、これに代わるより良い方法は何でしょうか?

4

1 に答える 1