Module: ActiveRecordLogger::ClassMethods

Defined in:
lib/rlog_items/active_record_logger.rb

Instance Method Summary collapse

Instance Method Details

#log_changes(options = {}) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/rlog_items/active_record_logger.rb', line 47

def log_changes options = {}
  @recoverable = options[:recoverable].nil? ? true : options[:recoverable]
  include ActiveRecordLogger::InstanceMethods
  before_save :prepare_rlog_item
  after_save :save_rlog_item

  has_many :rlog_items, :as => :record
  attr_accessor :log

  ActiveRecordLogger.target_models.push self.name unless ActiveRecordLogger.target_models.include? self.name

  fields = self.attribute_names.map(&:to_sym)
  fields -= options[:expect].map(&:to_sym) if options[:expect]
  fields &= options[:only].map(&:to_sym) if options[:only]

  @rlog_fields = fields.map(&:to_sym)
end