def audit_relationship_enabled(opts={})
      include InstanceMethods

      # class_inheritable_accessor :audit_enabled_models
      # class_inheritable_accessor :field_names

      class_attribute :audit_enabled_models
      class_attribute :field_names

      self.audit_enabled_models = gather_models(opts)
      self.field_names          = gather_assoc_fields_for_auditing(opts[:fields])

      after_create   :audit_relationship_create
      before_update  :audit_relationship_update
      before_destroy :audit_relationship_destroy
    end
def audit_relationship_enabled(opts={})
      include InstanceMethods

      # class_inheritable_accessor :audit_enabled_models
      # class_inheritable_accessor :field_names

      class_attribute :audit_enabled_models
      class_attribute :field_names

      self.audit_enabled_models = gather_models(opts)
      self.field_names          = gather_assoc_fields_for_auditing(opts[:fields])

      after_create   :audit_relationship_create
      before_update  :audit_relationship_update
      before_destroy :audit_relationship_destroy
    end
AuditRelationship creates audits for a has_many relationship.

 @examples
   class Company < ActiveRecord::Base
     has_many :phone_numbers
     audit_enabled
   end
   class PhoneNumber < ActiveRecord::Base
     belongs_to :company
     audit_relationship_enabled
   end

   valid options include:
   :only => [(array of models)]
     an array of models to only send an audit to
   :except => [(array of models)]
     an array of models to not send an audit to
   :fields => [(array of field names)]
     an array of field names.  Each field name will be one audit item