我想拥有当前登录用户的列表.
此代码不起作用:
<% UserSession.all.each do |user_session| %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
@ 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目前似乎有问题.
您无法获取所有用户的 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)