我希望能够找到谁登录到我的网络应用程序并能够打印出登录用户列表。我还希望能够打印出正在查看应用程序某个部分的人(例如聊天室,因此我可以打印出聊天用户)。
目前,我只是:
session[:role_id] = @role_id
当有人登录该应用时。
答案 0 :(得分:0)
每次用户向服务器发出请求时,您都可以使用 before_filter 来捕获用户。使用 current_user 的 updated_at 属性(或您执行的任何其他操作调用 logged_in 用户)
使用 before_filter :
的简单示例class RubyDevelopersController < ChatRoomController
# every time the request hits the server a call is sent to register the user
before_filter :register_user
private
def register_user
# the current_user's model is updated with the name
# of the chatroom he's hidding in.
# remember that this call also updates updated_at field of the current_user
current_user.update_attribute( :current_chatroom, 'ruby_developers' )
end
def ative_users_in_ruby_developers_chatroom
# find all users in the current chatroom that has been updated_at in the last 5 minutes.
Users.find( :all, {
:conditions => ["current_chatroom = ? and updated_at > ?",'ruby_developers', 5.minutes.ago ],
:sort => 'updated_at'
})
end
end
另见:
答案 1 :(得分:0)
如果您将会话数据存储在数据库中,我想您可以创建一个映射到会话表的模型,并在表中查询用户列表。如果所有会话数据都存储在cookie中,那么之前的答案就更加理想了。