instance method write_attribute

Ruby on Rails 3.2.22.5

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

write_attribute(attr_name, value)

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

Parameters

attr_name req
value req
Source
# File activerecord/lib/active_record/attribute_methods/write.rb, line 25
      def write_attribute(attr_name, value)
        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)

        unless column || @attributes.has_key?(attr_name)
          ActiveSupport::Deprecation.warn(
            "You're trying to create an attribute `#{attr_name}'. Writing arbitrary " \
            "attributes on a model is deprecated. Please just use `attr_writer` etc."
          )
        end

        @attributes[attr_name] = type_cast_attribute_for_write(column, value)
      end

Defined in activerecord/lib/active_record/attribute_methods/write.rb line 25 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::AttributeMethods::Write

Type at least 2 characters to search.

↑↓ navigate · open · esc close