Module: DeltaChanges::Extension::InstanceMethodsLegacy
- Defined in:
- lib/delta_changes.rb
Overview
Rails < 5.2
Instance Method Summary collapse
-
#write_attribute(attr, value) ⇒ Object
Wrap write_attribute to remember original attribute value.
Instance Method Details
#write_attribute(attr, value) ⇒ Object
Wrap write_attribute to remember original attribute value.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/delta_changes.rb', line 51 def write_attribute(attr, value) attr = attr.to_s unless self.class.[: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 |