Skip to Content Skip to Search

Active Record Attribute Methods Primary Key

Namespace
Methods
I
T

Instance Public methods

id()

Returns the primary key column’s value.

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

  @primary_key.map { |pk| _read_attribute(pk) }
end

id=(value)

Sets the primary key column’s value.

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 32
def id=(value)
  if self.class.composite_primary_key?
    @primary_key.zip(value) { |attr, value| _write_attribute(attr, value) }
  else
    _write_attribute(@primary_key, value)
  end
end

id?()

Queries the primary key column’s value.

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 41
def id?
  if self.class.composite_primary_key?
    @primary_key.all? { |col| query_attribute(col) }
  else
    query_attribute(@primary_key)
  end
end

id_before_type_cast()

Returns the primary key column’s value before type cast.

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 50
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

id_in_database()

Returns the primary key column’s value from the database.

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 68
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

id_was()

Returns the primary key column’s previous value.

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 59
def id_was
  if self.class.composite_primary_key?
    @primary_key.map { |col| attribute_was(col) }
  else
    attribute_was(@primary_key)
  end
end

to_key()

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

# File activerecord/lib/active_record/attribute_methods/primary_key.rb, line 13
def to_key
  key = id
  [key] if key
end