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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |