module ActiveRecord::AttributeMethods::Serialization::Behavior
def _field_changed?(attr, old, value)
def _field_changed?(attr, old, value) if self.class.serialized_attributes.include?(attr) old != value else super end end
def attributes_before_type_cast
def attributes_before_type_cast super.dup.tap do |attributes| self.class.serialized_attributes.each_key do |key| if attributes.key?(key) attributes[key] = attributes[key].unserialized_value end end end end
def read_attribute_before_type_cast(attr_name)
def read_attribute_before_type_cast(attr_name) if self.class.serialized_attributes.include?(attr_name) super.unserialized_value else super end end
def type_cast_attribute_for_write(column, value)
def type_cast_attribute_for_write(column, value) if column && coder = self.class.serialized_attributes[column.name] Attribute.new(coder, value, :unserialized) else super end end
def typecasted_attribute_value(name)
def typecasted_attribute_value(name) if self.class.serialized_attributes.include?(name) @attributes[name].serialized_value else super end end