Мониторинг пользователей в Rails
-
02-07-2019 - |
Вопрос
У нас есть приложение с обширным административным разделом.Мы получили небольшой триггер, довольный функциями (как и вы), и ищем какой-нибудь быстрый и простой способ отслеживать, «кто что использует».
В идеале это простой драгоценный камень, который позволит нам отслеживать действия контроллера/действия для каждого пользователя, чтобы составить представление об используемых и неиспользуемых функциях.
Что-нибудь из того, что вы порекомендуете..
Спасибо
Дом
Решение
Я не знаю, существует ли для этого популярный драгоценный камень или плагин;в прошлом я реализовал этот вид аудита как before_filter
в Контроллере приложений:
из памяти:
class ApplicationController < ActionController::Base
before_filter :audit_events
# ...
protected
def audit_events
local_params = params.clone
controller = local_params.delete(:controller)
action = local_params.delete(:action)
Audit.create(
:user => current_user,
:controller => controller,
:action => action,
:params => local_params
)
end
end
Конечно, предполагается, что вы используете что-то вроде restful_authentication для получения текущего пользователя.
РЕДАКТИРОВАТЬ:В зависимости от того, как настроены ваши ассоциации, лучше заменить бит Audit.create следующим:
current_user.audits.create({
:controller => controller,
:action => action,
:params => local_params
})
Определение объема творений с помощью ассоциаций ActiveRecord == лучшая практика