加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 跟踪用户登录日期和IP历史记录的有效方法

发布时间:2020-12-17 01:54:20 所属栏目:百科 来源:网络整理
导读:我正在尝试跟踪用户登录历史记录以进行统计,但我不清楚最好的方法是什么.我可以有一个单独的表来记录用户和他们的登录统计数据与日期,但该表可能真的很大.我可以在一个可解析的字段中跟踪User模型/对象本身中的一些历史字段,然后用一些分隔的字符串格式更新
我正在尝试跟踪用户登录历史记录以进行统计,但我不清楚最好的方法是什么.我可以有一个单独的表来记录用户和他们的登录统计数据与日期,但该表可能真的很大.我可以在一个可解析的字段中跟踪User模型/对象本身中的一些历史字段,然后用一些分隔的字符串格式更新它们(它们).例如拆分:,得到最后一个,如果包含的日期代码不是今天,添加一个项目(日期计数)否则增加,然后保存回来.至少使用第二种方法,可以很容易地删除旧项目(例如,仅保留30天的每日登录或IP),因为单独的表将需要删除旧记录的任务.

我是即时变化的忠实粉丝.任务很有用,但出于维护原因可能会使事情变得复杂.

有人有什么建议吗?我还没有外部数据缓存解决方案.任何指针也欢迎! (我一直在寻找类似的问题和答案)

谢谢!

解决方法

如果你有:trackable模块,我发现这是最简单的方法.在用户模型中(或您正在验证的模型)

def update_tracked_fields!(request)
    old_signin = self.last_sign_in_at
    super
    if self.last_sign_in_at != old_signin
      Audit.create :user => self,:action => "login",:ip => self.last_sign_in_ip
    end
  end

(灵感来自https://github.com/plataformatec/devise/wiki/How-To:-Turn-off-trackable-for-admin-users)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读