Rails中的用户监视

时间:2020-03-06 14:35:26  来源:igfitidea点击:

我们有一个带有广泛管理部分的应用程序。我们对功能感到满意(就像我们所做的那样),并且正在寻找一种快速简便的方法来监视"谁使用了什么"。

理想情况下,这是一个简单的工具,可以让我们根据每个用户跟踪控制器/操作,以建立使用过的和未使用的功能的图片。

我们推荐的所有内容。

谢谢

多姆

解决方案

我不知道有什么流行的gem或者插件;过去,我已经在ApplicationController中将这种审核实现为before_filter

从记忆里:

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关联对创建进行作用域==最佳实践