This method is deprecated or moved on the latest stable version.
The last existing version (v2.3.8) is shown here.
write_attribute_with_dirty(attr, value)
private
Wrap write_attribute to remember original attribute value.
# File activerecord/lib/active_record/dirty.rb, line 126
def write_attribute_with_dirty(attr, value)
attr = attr.to_s
# The attribute already has an unsaved change.
if changed_attributes.include?(attr)
old = changed_attributes[attr]
changed_attributes.delete(attr) unless field_changed?(attr, old, value)
else
old = clone_attribute_value(:read_attribute, attr)
changed_attributes[attr] = old if field_changed?(attr, old, value)
end
# Carry on.
write_attribute_without_dirty(attr, value)
end