新手问题 请问各位哥们是怎么处理数据库日志表的?

QueXuQ · 2012年11月17日 · 最后由 zx1986 回复于 2015年08月05日 · 3604 次阅读

数据库日志表就是记录数据库里的操作,例如删除,添加,是谁执行等等。 我想问问有没有什么操作的窍门? 我目前的想法是在所有 model 里的 action 里都加入日志的操作,如:

class CompaniesController < ApplicationController
  def new
    @company = Company.new
  end

  def create
    @company = Company.new(params[:company])
    @log = Log.new(:name => @company.name, :operation => "create",.....) #日志的存储
    @company.transaction do
      @company.save!
      @log.save!
    end
    redirect_to '/'
  end
end

会不会有什么特别的窍门呢?我觉得每个 action 都添加一个关于 log 的操作,好像有点繁琐。

filter 要更好一点

结合 callback 记录参数

这种日志最好不要用数据库,有点浪费了,而且会和正常的数据库操作抢资源,记录在文件中就可以了,以后作分析!!

存到文件吧。。或 mongodb

#1 楼 @suupic 第一次看过这个 GEM。我先看看文档。 #2 楼 @woaigithub 刚刚在 github 里找了一下,没见到有 filter 的 gem,请问全名是什么呢? 因为随时可能调用来察看,所以会不会在数据库里方便些呢? #5 楼 @lipeng8821 用 MySQL 和 mongodb 一起用?

filter 不是一个 gem,是 controller 的 filter,可以在方法前后调用。

给你多一个选择 paper_trail https://github.com/airblade/paper_trail 比起 audited 功能强大些,支持 versions, 支持记录不同 model 的日志到不同的数据表

#7 楼 @woaigithub 哦。哥们,原来你说的是 before_filter,after_filter。谢谢,我参透一下。谢谢你那么热心,我次次发贴你都有回复。^3^

客气了,大家一起进步了!

感謝!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号