| Module | CollectiveIdea::Acts::Audited::ClassMethods |
| In: |
lib/acts_as_audited.rb
|
[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
class User < ActiveRecord::Base
acts_as_audited :protect => false
attr_accessible :name
end
# File lib/acts_as_audited.rb, line 70
70: def acts_as_audited(options = {})
71: # don't allow multiple calls
72: return if self.included_modules.include?(CollectiveIdea::Acts::Audited::InstanceMethods)
73:
74: options = {:protect => accessible_attributes.nil?}.merge(options)
75:
76: class_inheritable_reader :non_audited_columns
77: class_inheritable_reader :auditing_enabled
78:
79: if options[:only]
80: except = self.column_names - options[:only].flatten.map(&:to_s)
81: else
82: except = [self.primary_key, inheritance_column, 'lock_version', 'created_at', 'updated_at']
83: except |= Array(options[:except]).collect(&:to_s) if options[:except]
84: end
85: write_inheritable_attribute :non_audited_columns, except
86:
87: if options[:comment_required]
88: validates_presence_of :audit_comment
89: before_destroy :require_comment
90: end
91:
92: attr_accessor :audit_comment
93: unless accessible_attributes.nil? || options[:protect]
94: attr_accessible :audit_comment
95: end
96:
97: has_many :audits, :as => :auditable, :order => "#{Audit.quoted_table_name}.version"
98: attr_protected :audit_ids if options[:protect]
99: Audit.audited_class_names << self.to_s
100:
101: after_create :audit_create
102: before_update :audit_update
103: after_destroy :audit_destroy
104:
105: attr_accessor :version
106:
107: extend CollectiveIdea::Acts::Audited::SingletonMethods
108: include CollectiveIdea::Acts::Audited::InstanceMethods
109:
110: write_inheritable_attribute :auditing_enabled, true
111: end