Поиск последнего активного времени для вошедшего в систему пользователя - PullRequest
2 голосов
/ 28 февраля 2010

Я использую ruby ​​на сеансе rails для хранения пользовательских cookie-файлов, чтобы они оставались в системе, поэтому я не могу просто обновить столбец last_seen после их входа в систему. Я пытаюсь найти лучший способ узнать, был ли пользователь активным в последний день. Это то, что я имею до сих пор, но мне интересно, есть ли лучший способ:

class ApplicationController
  before_filter :update_last_seen

private
  def update_last_seen
    if (DateTime.now - 1.day) < current_user.last_seen
      current_user.last_seen = DateTime.now
      current_user.save
    end
  end
end

Проблема в том, что он будет вызываться при каждом запросе. Есть ли способ избежать этого? Обновляется ли сессионный cookie каким-либо образом, когда пользователь активен?

1 Ответ

3 голосов
/ 28 февраля 2010

Нет, именно так вы и должны поступать. before_filter - отличный способ отслеживать подобные вещи, и как authlogic также реализует свою систему аутентификации. Там нет никакого способа сделать обработку по одному запросу "в день". Если вы используете Authlogic в качестве метода аутентификации, в него встроено время последнего входа в систему. Вы можете увидеть пример этого здесь .

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