Module: PaperTrailAssociationTracking::ModelConfig

Included in:
PaperTrail::ModelConfig
Defined in:
lib/paper_trail_association_tracking/model_config.rb

Overview

Configures an ActiveRecord model, mostly at application boot time, but also sometimes mid-request, with methods like enable/disable.

Instance Method Summary collapse

Instance Method Details

#setup(options = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Set up ‘@model_class` for PaperTrail. Installs callbacks, associations, “class attributes”, instance methods, and more.



10
11
12
13
14
15
16
17
18
# File 'lib/paper_trail_association_tracking/model_config.rb', line 10

def setup(options = {})
  super

  @model_class.class_attribute :version_association_class_name
  @model_class.version_association_class_name = options.dig(:version_associations, :class_name) || "PaperTrail::VersionAssociation"

  setup_transaction_callbacks
  setup_callbacks_for_habtm(options[:join_tables])
end

#version_association_classObject



20
21
22
# File 'lib/paper_trail_association_tracking/model_config.rb', line 20

def version_association_class
  @version_association_class ||= @model_class.version_association_class_name.constantize
end