有谁知道如何在Rails应用程序中在线显示所有用户? 我有一个用户模型,我想查看目前在线的所有用户。 例如,在我的用户控制器中,我有:
@users = User.all(:collection => "status => 'online'", :locals => {:users => @users})
在我的观点中index.html.erb
<%= div_for user do %>
<h1>Online Users</h1>
<%= link_to image_tag(user.avatar.url(:thumb).to_s)%>
<%= user.username %>
<% end %>
问题是:我可以用什么方法来显示登录用户?
答案 0 :(得分:2)
您可以在application_controller上设置before_filter,以设置'online_at'属性。然后,您可以显示最近5分钟内在线的所有用户。
答案 1 :(得分:1)
据我所知,您的用户模型有一个状态属性,表示用户是否在线。
根据您指定的内容,我无法确定您的控制器是否正确地拉回用户;但是,你可以试试这样的......
在您的控制器中:
@users = Users.find(:all, :conditions => ["status = ?", "online"])
然后在你的相关视图中:
<ul>
<% @users.each do |user| %>
<li>
<%= link_to image_tag(user.avatar.url(:thumb).to_s) %>
<%= user.username %>
</li>
<% end %>
</ul>
最后,您可能希望将上述代码移动到局部,然后设置一个Ajax轮询机制,该机制将以特定间隔检查服务器,以确保您的列表是最新的。
答案 2 :(得分:0)
我们可以列出在线用户(当前已登录的用户),请参阅此github应用https://github.com/mohanraj-ramanujam/online-users。
但您需要确保用户当前使用设计last_sign_in_at来查看该页面。
由于