2008-09-23 9 views
9

Tenemos una aplicación con una extensa sección de administración. Tenemos un gatillo pequeño feliz con las características (como lo hace) y estamos buscando una forma rápida y fácil de controlar "quién usa qué".Monitoreo de usuario en rieles

Idealmente, una gema simple que nos permitirá rastrear controladores/acciones por usuario para crear una imagen de las características que se usan y las que no.

Cualquier cosa por ahí que le gustaría recomendar ..

Gracias

Dom

Respuesta

10

No sé que hay una gema popular o plug-in para esto; En el pasado, he implementado este tipo de auditoría como before_filter en ApplicationController:

de la 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 

Esto supone que usted está usando algo como restful_authentication para obtener usuario actual, por supuesto.

EDIT: En función de cómo sus asociaciones se crean, que haría aún mejor para reemplazar el bit Audit.create con esto:

current_user.audits.create({ 
    :controller => controller, 
    :action => action, 
    :params => local_params 
}) 

creaciones de ámbito través assoiations ActiveRecord == mejores prácticas

+0

¡Necesitas clonar params o te arriesgas a romper cosas con la eliminación! –

+0

¡Buen punto! editado para corregir –

+0

Sé que ya pasaron dos años, pero con el filtro de parámetros, este es mejor que 'params' ' local_params request.filtered_parameters.dup' –