Rails和Authlogic.显示当前登录的用户

man*_*650 4 ruby-on-rails

我想拥有当前登录用户的列表.

此代码不起作用:

<% UserSession.all.each do |user_session| %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

Ans*_*son 5

@ syed-aslam有一个很好的解决方案,但你可以让Authlogic完成工作.退房的模块Authlogic :: ActsAsAuthentic :: LoggedInStatus它定义了两个范围:logged_in,logged_out

您的代码变为:

<% User.logged_in.each do |user| %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

PS我通常会链接到RDoc而不是源代码,但RDoc目前似乎有问题.


tje*_*den 0

您无法获取所有用户的 UserSession,每次用户发送请求时都会创建 UserSession,并且在请求之间不会被记住。

但是,您可以显示在一段时间内登录的用户(如果您在每次登录时更新了last_logged_in列)

Logged in last 15 minutes:
<% User.find("last_logged_in < ?", 15.minutes.ago ).each do |user| %>
Run Code Online (Sandbox Code Playgroud)