Class: RecordVersion

Inherits:
RecordVersionBase show all
Includes:
PaperTrail::VersionConcern
Defined in:
app/models/record_version.rb

Overview

== Schema Information

Table name: versions(partitioned,partition_key:created_at)
Database name: versions

id :integer not null, primary key
event :string(255) not null
ip :string(255)
item_type :string(255) not null
object_changes :jsonb
reference_data :jsonb
url :text
whodunnit :string(255)
created_at :datetime not null
item_id :integer not null

Constant Summary

Constants inherited from RecordVersionBase

RecordVersionBase::CONNECTION_ERRORS

Belongs to collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from RecordVersionBase

safe_read

Class Method Details

.ransackable_scopes(_auth_object = nil) ⇒ Array<Symbol>

Parameters:

  • _auth_object (Object) (defaults to: nil)

    unused Ransack auth object

Returns:

  • (Array<Symbol>)


50
51
52
# File 'app/models/record_version.rb', line 50

def self.ransackable_scopes(_auth_object = nil)
  %i[with_changes_to]
end

.with_attribute_changedActiveRecord::Relation<RecordVersion>

A relation of RecordVersions that are with attribute changed. Active Record Scope

Returns:

See Also:



35
# File 'app/models/record_version.rb', line 35

scope :with_attribute_changed, ->(attribute) { where('object_changes ?& array[:keys]', keys: [attribute]) }

Instance Method Details

#changesHash

Returns:

  • (Hash)


44
45
46
# File 'app/models/record_version.rb', line 44

def changes
  (object_changes || {}).reject { |_k, v| v.all?(&:nil?) }
end

#itemActiveRecord::Base

Returns:

  • (ActiveRecord::Base)


29
# File 'app/models/record_version.rb', line 29

belongs_to :item, polymorphic: true

#objectHash

Fake it!

Returns:

  • (Hash)


39
40
41
# File 'app/models/record_version.rb', line 39

def object
  {}
end

#responsible_partyParty

Returns:



27
# File 'app/models/record_version.rb', line 27

belongs_to :responsible_party, foreign_key: :whodunnit, class_name: 'Party', optional: true