Использование данных сеанса, чтобы узнать, кто в сети - PullRequest
0 голосов
/ 17 мая 2009

Я хочу узнать, кто вошел в мое веб-приложение, и распечатать список зарегистрированных пользователей. Я также хочу иметь возможность распечатывать, кто просматривает определенный раздел приложения (например, чат, чтобы я мог распечатать пользователей чата).

На данный момент у меня просто есть:

session[:role_id] = @role_id

когда кто-то входит в приложение.

Ответы [ 2 ]

0 голосов
/ 11 июня 2009

Если вы храните данные сеанса в базе данных, я полагаю, вы могли бы просто создать модель, которая сопоставляется с таблицей сеансов, и запросить в таблице список пользователей. Если все данные сеанса хранятся в файлах cookie, предыдущий ответ будет более идеальным.

0 голосов
/ 17 мая 2009

Вы можете использовать before_filter перехватывать пользователя каждый раз, когда пользователь отправляет запрос на сервер. Использование updated_at атрибута current_user (или любого другого, что вы делаете, вызывает пользователя get 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

также см .:

http://railsforum.com/viewtopic.php?pid=66001

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...