有没有办法或宝石来识别所有登录我们应用程序的用户? 。提前谢谢。
答案 0 :(得分:2)
首先,您需要使用除CookieStore之外的其他内容作为会话后端。如果您使用例如ActiveRecord,您应该能够相对轻松地查询所有当前登录的用户。
我不知道这是一个宝石,但这听起来并不像你需要的那样。
答案 1 :(得分:1)
您可以通过定义额外的字段来表达,例如,status
表示users
。
因此,当任何用户获得logged in
时,您必须将此字段设置为“在线”状态。
然后在控制器的create方法中,您只需执行以下操作:
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以了解用户是否还在那里。
答案 2 :(得分:1)
这实际上取决于您使用哪个宝石登录系统。
如果您使用的是Authlogic,我无法确定为用户模型创建的所有字段,但我相信您可以执行搜索,例如在名称范围内定义并搜索 last_request_at < / strong>不到5-10分钟。
如果你正在使用Devise,如果你特别想使用gem,你可以试试这个: https://github.com/ctide/devise_lastseenable