module Audited::Auditor::ClassMethods

def audited(options = {})


any create, update or destroy operation.
* +require_comment+ - Ensures that audit_comment is supplied before

end
audited except: :password
class User < ActiveRecord::Base

You can add to those by passing one or an array of fields to skip.
[self.primary_key, inheritance_column, 'lock_version', 'created_at', 'updated_at']

By default, Audited will audit all but these fields:
* +except+ - Excludes fields from being saved in the audit log.
* +only+ - Only audit the given attributes


== Configuration options
def audited(options = {})
  # don't allow multiple calls
  return if included_modules.include?(Audited::Auditor::AuditedInstanceMethods)
  class_attribute :audit_associated_with,   instance_writer: false
  class_attribute :audited_options,       instance_writer: false
  self.audited_options = options
  self.audit_associated_with = options[:associated_with]
  if options[:comment_required]
    validates_presence_of :audit_comment, if: :auditing_enabled
    before_destroy :require_comment
  end
  attr_accessor :audit_comment
  has_many :audits, -> { order(version: :asc) }, as: :auditable, class_name: Audited.audit_class.name
  Audited.audit_class.audited_class_names << to_s
  on = Array(options[:on])
  after_create :audit_create    if on.empty? || on.include?(:create)
  before_update :audit_update   if on.empty? || on.include?(:update)
  before_destroy :audit_destroy if on.empty? || 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) }
  attr_accessor :version
  extend Audited::Auditor::AuditedClassMethods
  include Audited::Auditor::AuditedInstanceMethods
  self.auditing_enabled = true
end

def default_ignored_attributes

def default_ignored_attributes
  [primary_key, inheritance_column]
end

def has_associated_audits

def has_associated_audits
  has_many :associated_audits, as: :associated, class_name: Audited.audit_class.name
end