ruby gem检查所有登录我们的应用程序的用户?

时间:2013-02-26 09:05:51

标签: ruby-on-rails ruby ruby-on-rails-3

有没有办法或宝石来识别所有登录我们应用程序的用户? 。提前谢谢。

3 个答案:

答案 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