Monitoramento de usuário no Rails
-
02-07-2019 - |
Pergunta
Nós temos um aplicativo com uma seção de administração extensa. Temos um pouco feliz gatilho com características (como você) e estão à procura de alguma maneira rápida e fácil de monitorar "quem usa o quê".
O ideal é uma jóia simples que nos permitirá rastrear controlador / ações em uma base por usuário para construir uma imagem dos recursos que são utilizados e aqueles que não são.
Qualquer coisa lá fora, que você iria recomendar ..
Graças
Dom
Solução
Eu não sei que há uma jóia popular ou plugin para isso; no passado, eu tenho implementado este tipo de auditoria como um before_filter
em ApplicationController:
a partir da memória:
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
Isso pressupõe que você está usando algo como restful_authentication para obter usuário atual, é claro.
EDIT: Dependendo de como suas associações são criadas, você faria ainda melhor para substituir o bit Audit.create com este:
current_user.audits.create({
:controller => controller,
:action => action,
:params => local_params
})
criações de escopo através de melhores práticas ActiveRecord assoiations ==