Extract method: pt_recordable_object_changes
This commit is contained in:
parent
95aae3f8f2
commit
6e857d8e9f
|
@ -370,8 +370,7 @@ module PaperTrail
|
||||||
data[PaperTrail.timestamp_field] = updated_at
|
data[PaperTrail.timestamp_field] = updated_at
|
||||||
end
|
end
|
||||||
if paper_trail_options[:save_changes] && changed_notably? && self.class.paper_trail_version_class.column_names.include?('object_changes')
|
if paper_trail_options[:save_changes] && changed_notably? && self.class.paper_trail_version_class.column_names.include?('object_changes')
|
||||||
data[:object_changes] = self.class.paper_trail_version_class.object_changes_col_is_json? ? changes_for_paper_trail :
|
data[:object_changes] = pt_recordable_object_changes
|
||||||
PaperTrail.serializer.dump(changes_for_paper_trail)
|
|
||||||
end
|
end
|
||||||
if self.class.paper_trail_version_class.column_names.include?('transaction_id')
|
if self.class.paper_trail_version_class.column_names.include?('transaction_id')
|
||||||
data[:transaction_id] = PaperTrail.transaction_id
|
data[:transaction_id] = PaperTrail.transaction_id
|
||||||
|
@ -393,8 +392,7 @@ module PaperTrail
|
||||||
data[PaperTrail.timestamp_field] = updated_at
|
data[PaperTrail.timestamp_field] = updated_at
|
||||||
end
|
end
|
||||||
if paper_trail_options[:save_changes] && self.class.paper_trail_version_class.column_names.include?('object_changes')
|
if paper_trail_options[:save_changes] && self.class.paper_trail_version_class.column_names.include?('object_changes')
|
||||||
data[:object_changes] = self.class.paper_trail_version_class.object_changes_col_is_json? ? changes_for_paper_trail :
|
data[:object_changes] = pt_recordable_object_changes
|
||||||
PaperTrail.serializer.dump(changes_for_paper_trail)
|
|
||||||
end
|
end
|
||||||
if self.class.paper_trail_version_class.column_names.include?('transaction_id')
|
if self.class.paper_trail_version_class.column_names.include?('transaction_id')
|
||||||
data[:transaction_id] = PaperTrail.transaction_id
|
data[:transaction_id] = PaperTrail.transaction_id
|
||||||
|
@ -420,6 +418,20 @@ module PaperTrail
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Returns an object which can be assigned to the `object_changes`
|
||||||
|
# attribute of a nascent version record. If the `object_changes` column is
|
||||||
|
# a postgres `json` column, then a hash can be used in the assignment,
|
||||||
|
# otherwise the column is a `text` column, and we must perform the
|
||||||
|
# serialization here, using `PaperTrail.serializer`.
|
||||||
|
# @api private
|
||||||
|
def pt_recordable_object_changes
|
||||||
|
if self.class.paper_trail_version_class.object_changes_col_is_json?
|
||||||
|
changes_for_paper_trail
|
||||||
|
else
|
||||||
|
PaperTrail.serializer.dump(changes_for_paper_trail)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def changes_for_paper_trail
|
def changes_for_paper_trail
|
||||||
_changes = changes.delete_if { |k,v| !notably_changed.include?(k) }
|
_changes = changes.delete_if { |k,v| !notably_changed.include?(k) }
|
||||||
if PaperTrail.serialized_attributes?
|
if PaperTrail.serialized_attributes?
|
||||||
|
|
Loading…
Reference in New Issue