module Audited::Auditor::ClassMethods
Public Instance Methods
audited(options = {})
click to toggle source
-
redacted
- Changes to these fields will be logged, but the values will not. This is useful, for example, if you wish to audit when a password is changed, without saving the actual password in the log. To store values as something other than '[REDACTED]', pass an argument to the redaction_value option.class User < ActiveRecord::Base audited redacted: :password, redaction_value: SecureRandom.uuid end
-
if
- Only audit the model when the given function returns true -
unless
- Only audit the model when the given function returns falseclass User < ActiveRecord::Base audited :if => :active? def active? self.status == 'active' end end
# File lib/audited/auditor.rb, line 59 def audited(options = {}) # don't allow multiple calls return if included_modules.include?(Audited::Auditor::AuditedInstanceMethods) extend Audited::Auditor::AuditedClassMethods include Audited::Auditor::AuditedInstanceMethods class_attribute :audit_associated_with, instance_writer: false class_attribute :audited_options, instance_writer: false attr_accessor :audit_version, :audit_comment self.audited_options = options normalize_audited_options self.audit_associated_with = audited_options[:associated_with] if audited_options[:comment_required] validate :presence_of_audit_comment before_destroy :require_comment if audited_options[:on].include?(:destroy) end has_many :audits, -> { order(version: :asc) }, as: :auditable, class_name: Audited.audit_class.name, inverse_of: :auditable Audited.audit_class.audited_class_names << to_s after_create :audit_create if audited_options[:on].include?(:create) before_update :audit_update if audited_options[:on].include?(:update) before_destroy :audit_destroy if audited_options[:on].include?(:destroy) # Define and set after_audit and around_audit callbacks. This might be useful if you want # to notify a party after the audit has been created or if you want to access the newly-created # audit. define_callbacks :audit set_callback :audit, :after, :after_audit, if: lambda { respond_to?(:after_audit, true) } set_callback :audit, :around, :around_audit, if: lambda { respond_to?(:around_audit, true) } enable_auditing end
has_associated_audits()
click to toggle source
# File lib/audited/auditor.rb, line 97 def has_associated_audits has_many :associated_audits, as: :associated, class_name: Audited.audit_class.name end