0
我试图为我的一些rails模型实现审计功能并将其存储在外部“事件”数据库(我们选择BigQuery)。轨道模型的审计功能
每个事件应该是很基本的: before_json,after_json,DIFF,动作,OBJECT_ID
于是,我开始建设这个问题,我就加入到我的车型规划:
module Auditable
extend ActiveSupport::Concern
included do
before_destroy {audit(:destroy)}
after_validation on: :update do
audit(:update)
end
after_validation on: :create do
audit(:create)
end
def audit(action)
EventSender.send(before_json, self.to_json, diff, action, self.id)
end
end
end
的只有我不知道如何实现的是获取对象的之前的状态,所以我可以填充相关的字段和两个状态之间的差异。
关于如何做到这一点的任何想法?