Ruby Rails - 列出活跃会话

4
有没有办法在Rails中获取所有活动会话的列表?我有一个内存缓存的会话列表,并且想查看用户ID、来源IP、时间戳、持续时间等基本管理目的。

2
提醒一下,在生产环境中不建议使用内存会话存储,因为它不会在进程之间共享。此外,除非您使用数据库存储,否则这样做可能会相当复杂和hacky。 - Andrew Marshall
@AndrewMarshall。谢谢,这是一个好东西要知道的。 - Majoris
你正在使用什么进行身份验证?某些不同的选项具有内置的执行此操作的方式。 - Sean
1个回答

2

为了进一步解释我的评论,我正在做与你想要做的类似的事情。我正在使用authlogic,但我想你可以使用其他身份验证包做出类似的操作。

我正在使用authlogic的自动注销功能,并将其设置为在120分钟后注销用户。知道这一点后,生成一个列表就很简单了。我只需要执行以下操作:

<% User.find(:all, :conditions => ["last_request_at > ?", 120.minutes.ago]).each do |user| %>
  <li>
    <%= link_to user.name, admin_person_path(user.bio) %>
    (<%= mail_to user.email %>) <%= time_ago_in_words(user.last_request_at) %> ago
  </li>
<% end %>

你可以看到我只列出了他们的姓名、电子邮件和最后一次请求的时间。添加last_login_ip、current_login_at等信息非常简单。
希望这能有所帮助。

谢谢Sean。那段代码看起来不错。我正在使用OmniAuth,让我看看我在那里有哪些选项。 - Majoris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接