首页 > 解决方案 > 跟踪用户每日登录功能 Ruby on Rails

问题描述

我有一个快速的问题。我正在编写一个函数,该函数确定用户当天是否登录,作为跟踪每日登录和用户在控制器中增加(或不增加)每个用户的点值的更大努力的一部分。我知道 Devise gem 有 Trackable 模块来为用户记录这些值。但是在整体功能中使用这些方法时,我是否需要跟踪上次登录时间并将其与当前登录时间进行比较。关于如何在用户登录跟踪功能中实现这一点有点困惑。有人能帮忙吗?

标签: ruby-on-railsruby

解决方案


如果您想自己动手,我认为您可以采用多种方式。

您可以使用 2 列(一列用于当前登录,一列用于先前登录时间戳)扩展您的用户表,并创建登录后回调以更新两列。

您可以创建第二个表(一个用户有许多时间戳)并为您的用户记录每个登录时间戳。然后你可以比较最近的2次登录

但是,您必须考虑会话会保留在 cookie 中,并且登录很大程度上取决于 cookie 存在的时间。也许您想要的是当用户请求或更新登录后门控的资源时?


推荐阅读