Sha256: 9fd05088207bbaf55edafd7ff47612b95ab8cf97a3c1f3e2df7f79eae73ba583
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
module ActiveRecord module AttributeMethods module Dirty def write_attribute(attr, value) # CPK if attr.kind_of?(Array) # A *composite* attribute can't be marked as changed! So do nothing now. # We will come back in here with an *individual* attribute when Write#write_attribute looks through the individual attributes comprising this composite key: # [attr_name, value].transpose.map {|name,val| write_attribute(name, val)} else attr = attr.to_s # The attribute already has an unsaved change. if attribute_changed?(attr) old = @changed_attributes[attr] @changed_attributes.delete(attr) unless field_changed?(attr, old, value) else old = clone_attribute_value(:read_attribute, attr) # Save Time objects as TimeWithZone if time_zone_aware_attributes == true old = old.in_time_zone if clone_with_time_zone_conversion_attribute?(attr, old) @changed_attributes[attr] = old if field_changed?(attr, old, value) end end # Carry on. super(attr, value) end end end end ActiveRecord::Base.class_eval do alias :[]= :write_attribute public :[]= end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
composite_primary_keys-5.0.9 | lib/composite_primary_keys/attribute_methods/dirty.rb |
composite_primary_keys-5.0.8 | lib/composite_primary_keys/attribute_methods/dirty.rb |