RailsAudit
Unlike audited and paper_trail etc. These model audit tools use model callbacks to record every changes.
rails_audit
record ActiveRecord Model changes in Controllers, it will record context with model changes:
- controller
- action
- request.remote_ip
- current_operator
- any other info you want to record..
Model style audit VS controller style audit
Model Style Audit | Controller style Audit |
---|---|
Record every changes | Record only when you marked |
use model callback, can skip by the data persistence not commit callback | No model callback |
use thread variables delivery state from controller to model | Just add variables you can get in controller |
Usage
in Model
- include Audited
class User < ActiveRecord::Base
include RailsAuditExt::Audited
end
in Controller
class UsersController < ApplicationController
include RailsAudit::Application
# use after action, will auto record changes by use saved_changes api
after_action only: [:update, :create, :destroy] do
mark_audits(instance: [:@user, :@role], local: [:current_user], note: 'note something!', extra: { client_headers: request.headers.as_json })
end
end
in View
link_to 'Audits', audits_path('User', user.id)
许可证
许可证采用 LGPL License