method

write_attribute_with_type_cast

Importance_0
v4.1.8 - Show latest stable - 0 notes - Class: ActiveRecord::AttributeMethods::Write
write_attribute_with_type_cast(attr_name, value, type_cast_method) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/attribute_methods/write.rb, line 78
      def write_attribute_with_type_cast(attr_name, value, type_cast_method)
        attr_name = attr_name.to_s
        attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key
        @attributes_cache.delete(attr_name)
        column = column_for_attribute(attr_name)

        # If we're dealing with a binary column, write the data to the cache
        # so we don't attempt to typecast multiple times.
        if column && column.binary?
          @attributes_cache[attr_name] = value
        end

        if column || @attributes.has_key?(attr_name)
          @attributes[attr_name] = send(type_cast_method, column, value)
        else
          raise ActiveModel::MissingAttributeError, "can't write unknown attribute `#{attr_name}'"
        end
      end
Register or log in to add new notes.