module DeltaChanges::Extension::InstanceMethodsLegacy
Rails < 5.2
Public Instance Methods
write_attribute(attr, value)
click to toggle source
Wrap write_attribute
to remember original attribute value.
Calls superclass method
# File lib/delta_changes.rb, line 51 def write_attribute(attr, value) attr = attr.to_s unless self.class.delta_changes_options[:columns].include?(attr) return super(attr, value) end # The attribute already has an unsaved change. if delta_changed_attributes.include?(attr) old = delta_changed_attributes[attr] super(attr, value) delta_changed_attributes.delete(attr) unless delta_changes_field_changed?(attr, old, value) else old = respond_to?(:clone_attribute_value) ? clone_attribute_value(:read_attribute, attr) : read_attribute(attr).dup super(attr, value) delta_changed_attributes[attr] = old if delta_changes_field_changed?(attr, old, value) end end