9

我们有一个具有广泛管理部分的应用程序。我们得到了一个对功能感到满意的小触发器(就像您所做的那样),并且正在寻找一些快速简便的方法来监控“谁使用了什么”。

理想情况下,一个简单的 gem 将允许我们在每个用户的基础上跟踪控制器/操作,以构建使用和未使用的功能的图片。

有什么好推荐的。。

谢谢

多姆

4

1 回答 1

10

我不知道有一个流行的 gem 或插件。过去,我before_filter在 ApplicationController 中实现了这种审计:

从记忆里:

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 关联创建范围 == 最佳实践

于 2008-09-23T10:11:23.790 回答