Данные сеанса содержат только значения, сохраненные в хеш-коде session[]
от пользователя.Он не хранит информацию о том, какое действие / контроллер было вызвано, поэтому вы не знаете, какая «ссылка была нажата».
Получите активность ваших пользователей:
Помимо rackamole, у вас есть два вариантаИМХО.
Используйте before_filter
в своем ApplicationController
для хранения соответствующей информации, которая вас интересует. (Имя контроллера, действие или URI, дополнительные параметры и идентификатор зарегистрированногонапример, для пользователя).
Используйте AJAX-вызов внизу каждой страницы, который отправляет интересующую вас информацию (URI, идентификатор зарегистрированного пользователя и т. д.)на ваш сервер.Это позволяет быстрее получать ответы от сервера, так как информация сохраняется после того, как страница уже доставлена.Кроме того, вам не нужно использовать Rails-запрос для его хранения.AJAX-запрос также может вызывать простой PHP-скрипт для записи данных на диск.Это намного быстрее.
Сохранение этого действия:
Сохраните эти данные / информацию либо в базе данных, либо в файле журнала.База данных предоставит вам большую гибкость, например, отображение всех действий от одного пользователя или всех посетителей на одной странице и т. Д. Решение с лог-файлами повысит производительность.
Realtime vs. Oldschool:
Что касается извлечения собранных вами данных в режиме реального времени, вы должны создать собственное решение.Чтобы сделать это элегантно (без запроса вашего сервера раз в секунду, чтобы посмотреть, поступили ли новые данные), вам понадобится другой серверный процесс. Поиск AJAX Push для получения дополнительной информации.
В зависимости от вашего приложения я спрашиваю себя, действительно ли уведомления в реальном времени для этого действительно необходимы (из-за всех сложностей с настройкой).
Чтобы отслеживать активность на вашем сайте, должно быть достаточно иметь страницу со списком последних действий и обновлять ее вручную (или обновлять автоматически каждые десять секунд).