查找登录用户的上次活动时间

时间:2010-02-28 03:49:39

标签: ruby-on-rails session

我在rails会话上使用ruby存储用户cookie以保持登录状态,因此我不能在登录后更新last_seen列。我试图找出最好的方法来确定用户是否在最后一天处于活动状态。这是我到目前为止所得到的,但我想知道是否有更好的方法:

class ApplicationController
  before_filter :update_last_seen

private
  def update_last_seen
    if (DateTime.now - 1.day) < current_user.last_seen
      current_user.last_seen = DateTime.now
      current_user.save
    end
  end
end

这个问题是每次请求都会调用它。有什么方法可以避免这种情况吗?会话cookie是否在用户处于活动状态时以某种方式更新?

1 个答案:

答案 0 :(得分:3)

不,这正是你应该如何去做的。 before_filter是跟踪这类事情的好方法,也是authlogic实现其身份验证系统的方式。没有办法“每天”处理一个请求。如果您使用Authlogic作为身份验证方法,则会内置上次登录时间。您可以看到它的示例here