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
的只有我不知道如何實現的是獲取對象的之前的狀態,所以我可以填充相關的字段和兩個狀態之間的差異。
關於如何做到這一點的任何想法?