2008-09-23 16 views
9

Mamy aplikację z rozbudowaną sekcją administracyjną. Mamy mały wyzwalacz zadowolony z funkcji (tak jak Ty) i szukasz szybkiego i łatwego sposobu na monitorowanie "kto używa czego".Monitorowanie użytkownika w Railsach

Idealnie prosty klejnot, który pozwoli nam śledzić kontroler/działania na użytkownika, aby stworzyć obraz funkcji, które są używane, a które nie.

coś tam, że chcesz polecić ..

Dzięki

Dom

Odpowiedz

10

nie wiem, że nie jest to popularny klejnot lub plugin do tego; w przeszłości, mam realizowane tego rodzaju badania jako before_filter w ApplicationController:

z pamięci:

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 

ta zakłada, że ​​używasz czegoś podobnego restful_authentication uzyskać bieżącego użytkownika, oczywiście.

EDIT: W zależności od Twoich stowarzyszenia są skonfigurowane, można zrobić jeszcze lepiej zastąpić kawałek Audit.create z tym:

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

SCOPINGU projekty poprzez assoiations ActiveRecord == najlepszych praktyk

+0

Musisz klonować paramy lub ryzykujesz zerwanie z usunięciem! –

+0

Dobra uwaga! edytowane do naprawienia. –

+0

Wiem, że minęły dwa lata, ale z filtrowaniem parametrów ten jest lepszy niż 'params' ' local_params request.filtered_parameters.dup' –