是否有任何方法或gem来识别所有登录我们应用程序的用户。提前谢谢。
首先,您需要使用Cookies Store之外的其他东西作为会话后端。例如,如果您使用ActiveRecord,您应该能够相对轻松地查询所有当前登录的用户。
我不知道有什么宝石可以做这件事,但这听起来也不像你需要的。
您可以通过定义表中的额外字段status
(例如users
(来实现这一点。
因此,当任何用户获得logged in
时,您都必须将该字段设置为"联机"状态。
然后在控制器的创建方法中,您只需执行以下操作:
User.create(:status => "online", #other params go here)
您也可以定义新的注册用户,状态为offline
。
你可以在用户注册时这样做:
User.new(:status => "offline", #other params go here)
然后要找到登录的用户,您可以这样做:
@online_users = User.where(:status => "online")
更新:
对于那些没有点击注销按钮的用户来说,上述想法是行不通的。
因此,你必须将这个想法与Jugernaut之类的东西结合起来,然后定期发送ping以了解用户是否还在。
这实际上取决于您在登录系统中使用的宝石。
如果您使用的是Authlogic,我记不清为用户模型创建的所有字段,但我相信您可以在不到5-10分钟的时间内完成搜索,比如在名称范围内定义并搜索last_request_at。
如果你正在使用Devise,如果你特别想使用宝石,你可以试试这个:https://github.com/ctide/devise_lastseenable