module ActiveRecord::AttributeMethods::Write - activerecord-4.2.5.2 Documentation

# module ActiveRecord::AttributeMethods::Write

### Constants

WriterMethodCache

### Public Instance Methods

raw_write_attribute(attr_name, value) click to toggle source

    # File lib/active_record/attribute_methods/write.rb, line 59
    def raw_write_attribute(attr_name, value)
      write_attribute_with_type_cast(attr_name, value, false)
    end

write_attribute(attr_name, value) click to toggle source

Updates the attribute identified by `attr_name` with the specified `value`. Empty strings for fixnum and float columns are turned into `nil`.

    # File lib/active_record/attribute_methods/write.rb, line 55
    def write_attribute(attr_name, value)
      write_attribute_with_type_cast(attr_name, value, true)
    end

### Private Instance Methods

attribute=(attribute_name, value) click to toggle source

Handle *= for method_missing.

    # File lib/active_record/attribute_methods/write.rb, line 65
    def attribute=(attribute_name, value)
      write_attribute(attribute_name, value)
    end

write_attribute_with_type_cast(attr_name, value, should_type_cast) click to toggle source

    # File lib/active_record/attribute_methods/write.rb, line 69
    def write_attribute_with_type_cast(attr_name, value, should_type_cast)
      attr_name = attr_name.to_s
      attr_name = self.class.primary_key if attr_name == 'id' && self.class.primary_key

      if should_type_cast
        @attributes.write_from_user(attr_name, value)
      else
        @attributes.write_cast_value(attr_name, value)
      end

      value
    end