Module ActsAsAudited::Auditor::ClassMethods
In: lib/acts_as_audited/auditor.rb

Methods

Included Modules

ActsAsAudited::Auditor::InstanceMethods

Public Instance methods

Configuration options

  • only - Only audit the given attributes
  • except - Excludes fields from being saved in the audit log. By default, acts_as_audited will audit all but these fields:
      [self.primary_key, inheritance_column, 'lock_version', 'created_at', 'updated_at']
    

    You can add to those by passing one or an array of fields to skip.

      class User < ActiveRecord::Base
        acts_as_audited :except => :password
      end
    
  • protect - If your model uses attr_protected, set this to false to prevent Rails from raising an error. If you declare attr_accessibe before calling acts_as_audited, it will automatically default to false. You only need to explicitly set this if you are calling attr_accessible after.
  • require_comment - Ensures that audit_comment is supplied before any create, update or destroy operation.
      class User < ActiveRecord::Base
        acts_as_audited :protect => false
        attr_accessible :name
      end
    

[Source]

    # File lib/acts_as_audited/auditor.rb, line 49
49:       def acts_as_audited(options = {})
50:         # don't allow multiple calls
51:         return if self.included_modules.include?(ActsAsAudited::Auditor::InstanceMethods)
52: 
53:         options = {:protect => accessible_attributes.empty?}.merge(options)
54: 
55:         class_attribute :non_audited_columns, :instance_writer => false
56:         class_attribute :auditing_enabled, :instance_writer => false
57:         class_attribute :audit_associated_with, :instance_writer => false
58: 
59:         if options[:only]
60:           except = self.column_names - options[:only].flatten.map(&:to_s)
61:         else
62:           except = [self.primary_key, inheritance_column, 'lock_version',
63:             'created_at', 'updated_at', 'created_on', 'updated_on']
64:           except |= Array(options[:except]).collect(&:to_s) if options[:except]
65:         end
66:         self.non_audited_columns = except
67:         self.audit_associated_with = options[:associated_with]
68: 
69:         if options[:comment_required]
70:           validates_presence_of :audit_comment, :if => :auditing_enabled
71:           before_destroy :require_comment
72:         end
73: 
74:         attr_accessor :audit_comment
75:         unless accessible_attributes.empty? || options[:protect]
76:           attr_accessible :audit_comment
77:         end
78: 
79:         has_many :audits, :as => :auditable
80:         attr_protected :audit_ids if options[:protect]
81:         Audit.audited_class_names << self.to_s
82: 
83:         after_create  :audit_create if !options[:on] || (options[:on] && options[:on].include?(:create))
84:         before_update :audit_update if !options[:on] || (options[:on] && options[:on].include?(:update))
85:         before_destroy :audit_destroy if !options[:on] || (options[:on] && options[:on].include?(:destroy))
86: 
87:         attr_accessor :version
88: 
89:         extend ActsAsAudited::Auditor::SingletonMethods
90:         include ActsAsAudited::Auditor::InstanceMethods
91: 
92:         self.auditing_enabled = true
93:       end

[Source]

    # File lib/acts_as_audited/auditor.rb, line 95
95:       def has_associated_audits
96:         has_many :associated_audits, :as => :associated, :class_name => "Audit"
97:       end

[Validate]