我正在使用 ruby on Rails session 来存储用户 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
这样做的问题是每个请求都会调用它。有什么办法可以避免这种情况吗?当用户处于事件状态时, session cookie 是否会以某种方式更新?
最佳答案
不,这正是您应该采取的方式。 before_filter
是跟踪此类事件的好方法,也是 authlogic
实现其身份验证系统的方式。没有办法“每天”处理一个请求。如果您使用Authlogic作为您的身份验证方法,它内置了上次登录时间。您可以查看它的示例 here .
关于ruby-on-rails - 查找登录用户的最后活跃时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350019/