Module: ConcernsOnRails::Models::Auditable::ClassMethods

Includes:
Support::ColumnGuard
Defined in:
lib/concerns_on_rails/models/auditable.rb

Instance Method Summary collapse

Methods included from Support::ColumnGuard

#ensure_columns!

Instance Method Details

#auditable_by(*fields, into: DEFAULT_INTO, actor: nil, max_entries: DEFAULT_MAX_ENTRIES, max_value_length: nil) ⇒ Object

Configure the tracked fields and the audit column. See the module docs.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/concerns_on_rails/models/auditable.rb', line 66

def auditable_by(*fields, into: DEFAULT_INTO, actor: nil, max_entries: DEFAULT_MAX_ENTRIES, max_value_length: nil)
  fields = fields.flatten.map(&:to_sym).uniq
  into = into.to_sym
  validate_auditable!(fields, into: into, actor: actor, max_entries: max_entries, max_value_length: max_value_length)

  self.auditable_fields = fields
  self.auditable_into = into
  self.auditable_actor = actor
  self.auditable_max_entries = max_entries
  self.auditable_max_value_length = max_value_length
  ensure_columns!(LABEL, into, *fields)

  before_save :auditable_capture_changes
end