是否有任何方法或 gem 来识别所有登录我们的应用程序的用户?. 提前致谢。
问问题
121 次
3 回答
2
首先,您需要使用除 CookieStore 之外的其他东西作为会话后端。如果您使用例如 ActiveRecord,您应该能够相对轻松地查询所有当前登录的用户。
我不知道这有什么宝石,但这听起来真的不像你需要一个。
于 2013-02-26T09:08:29.763 回答
1
你可以通过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 来了解用户是否仍然在那里。
于 2013-02-26T09:38:42.950 回答
1
这实际上取决于您用于登录系统的 gem。
如果您使用的是 Authlogic,我无法确定为用户模型创建的所有字段,但我相信您可以通过在名称范围内定义和搜索last_request_at等搜索在 5-10 分钟内完成.
如果您使用的是 Devise,并且特别想使用 gem,可以尝试以下操作: https ://github.com/ctide/devise_lastseenable
于 2013-02-26T09:47:00.533 回答