Monitoraggio dell'utente in Rails
-
02-07-2019 - |
Domanda
Abbiamo un'app con un'ampia sezione di amministrazione. Siamo rimasti un po 'contenti delle funzionalità (come te) e stiamo cercando un modo rapido e semplice per monitorare "chi usa cosa".
Idealmente una semplice gemma che ci consentirà di tracciare il controller / le azioni in base all'utente per creare un'immagine delle funzionalità utilizzate e di quelle che non lo sono.
Qualunque cosa là fuori che consiglieresti ..
Grazie
Dom
Soluzione
Non so che ci sia un gioiello o plugin popolare per questo; in passato ho implementato questo tipo di controllo come before_filter
in ApplicationController:
dalla memoria:
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
Ciò presuppone che tu stia usando qualcosa come restful_authentication per ottenere l'utente corrente, ovviamente.
EDIT: a seconda di come sono impostate le associazioni, faresti ancora meglio a sostituire il bit Audit.create con questo:
current_user.audits.create({
:controller => controller,
:action => action,
:params => local_params
})
Creazioni di scoping tramite ActiveRecord assoiations == best practice