Method: AuditLog.audit!
- Defined in:
- lib/audit-log.rb
.audit!(action, record = nil, payload: nil, user: nil, request: nil) ⇒ Object
Create an audit log
AuditLog.audit!(:edit_account, @account, payload: account_params, user: current_user)
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/audit-log.rb', line 29 def audit!(action, record = nil, payload: nil, user: nil, request: nil) ActiveSupport::Notifications.instrument('audit.audit_log', action: action) do request_info = {} if request request_info = { request_id: request.request_id, ip: request.remote_ip, url: request.url, user_agent: request.user_agent } end # Set nil if record is a new_record, do this for avoid create record. record = nil if record&.new_record? Rails.logger.silence do AuditLog::Log.create!( action: action, record: record, payload: (payload || {}).to_h.deep_stringify_keys, user: user, request: request_info.deep_stringify_keys ) end end end |