Active Record Attribute Methods Primary Key

Namespace

Module

Methods

Instance Public methods

id()

Returns the primary key column’s value. If the primary key is composite, returns an array of the primary key column values.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 20
      def id
        return _read_attribute(@primary_key) unless @primary_key.is_a?(Array)

        @primary_key.map { |pk| _read_attribute(pk) }
      end
🔎 See on GitHub

id=(value)

Sets the primary key column’s value. If the primary key is composite, raises TypeError when the set value not enumerable.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 34
      def id=(value)
        if self.class.composite_primary_key?
          raise TypeError, "Expected value matching #{self.class.primary_key.inspect}, got #{value.inspect}." unless value.is_a?(Enumerable)
          @primary_key.zip(value) { |attr, value| _write_attribute(attr, value) }
        else
          _write_attribute(@primary_key, value)
        end
      end
🔎 See on GitHub

id?()

Queries the primary key column’s value. If the primary key is composite, all primary key column values must be queryable.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 45
      def id?
        if self.class.composite_primary_key?
          @primary_key.all? { |col| _query_attribute(col) }
        else
          _query_attribute(@primary_key)
        end
      end
🔎 See on GitHub

id_before_type_cast()

Returns the primary key column’s value before type cast. If the primary key is composite, returns an array of primary key column values before type cast.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 55
      def id_before_type_cast
        if self.class.composite_primary_key?
          @primary_key.map { |col| attribute_before_type_cast(col) }
        else
          attribute_before_type_cast(@primary_key)
        end
      end
🔎 See on GitHub

id_in_database()

Returns the primary key column’s value from the database. If the primary key is composite, returns an array of primary key column values from database.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 75
      def id_in_database
        if self.class.composite_primary_key?
          @primary_key.map { |col| attribute_in_database(col) }
        else
          attribute_in_database(@primary_key)
        end
      end
🔎 See on GitHub

id_was()

Returns the primary key column’s previous value. If the primary key is composite, returns an array of primary key column previous values.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 65
      def id_was
        if self.class.composite_primary_key?
          @primary_key.map { |col| attribute_was(col) }
        else
          attribute_was(@primary_key)
        end
      end
🔎 See on GitHub

to_key()

Returns this record’s primary key value wrapped in an array if one is available.

📝 Source code
# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 13
      def to_key
        key = id
        Array(key) if key
      end
🔎 See on GitHub