ruby-on-rails - 查找登录用户的最后活跃时间

标签 ruby-on-rails session

我正在使用 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/

相关文章:

ruby-on-rails - 这些 unicorn 进程是什么?或者他们是线程?

ruby-on-rails - Faye 服务器不是由工头启动的

session - 如何在 Drupal 7 中禁用匿名用户的 cookie

JavaScript 在从服务器获取数据之前正在处理

ruby-on-rails - 在前一个请求完成之前,当前类是否可以被新请求覆盖?

ruby-on-rails - 如何使用其他方法扩展 ActiveRecord::Migration?

php - 使用后清除 session 变量

php - 为什么我无法访问 $_SESSION[USERID]?

java - session 属性访问并转换为 int?

从 Word 文档打开页面时 PHP session 未注册