Для просмотра всех пользователей онлайн в приложении Ruby on rails - PullRequest
0 голосов
/ 12 марта 2011

Кто-нибудь знает, как я могу отображать всех пользователей онлайн в приложении 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 %>

Проблема заключается в следующем: какой метод я могу использовать для отображения зарегистрированныху пользователей?

Ответы [ 3 ]

2 голосов
/ 17 марта 2011

Вы можете установить before_filter для application_controller, который устанавливает атрибут 'online_at'.Затем вы можете отобразить всех пользователей, которые были в сети за последние 5 минут.

1 голос
/ 12 марта 2011

Насколько я могу судить, ваша модель User имеет свойство status, которое указывает, находится ли пользователь в сети.

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

В вашем контроллере:

@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, который будет проверять сервер через определенный интервал, чтобы убедиться, что ваш список обновлен.

0 голосов
/ 15 июля 2013

Мы можем перечислить онлайн-пользователей (зарегистрированных в данный момент), пожалуйста, посмотрите это приложение на github https://github.com/mohanraj-ramanujam/online-users.

Но вы должны убедиться, что пользователь в данный момент просматривает страницу, используя devise last_sign_in_at.

Спасибо

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