# module ActiveRecord::AttributeMethods::PrimaryKey

### Public Instance Methods

id() click to toggle source

Returns the primary key value.

    # File lib/active_record/attribute_methods/primary_key.rb, line 17
    def id
      if pk = self.class.primary_key
        sync_with_transaction_state
        _read_attribute(pk)
      end
    end

id=(value) click to toggle source

Sets the primary key value.

    # File lib/active_record/attribute_methods/primary_key.rb, line 25
    def id=(value)
      sync_with_transaction_state
      write_attribute(self.class.primary_key, value) if self.class.primary_key
    end

id?() click to toggle source

Queries the primary key value.

    # File lib/active_record/attribute_methods/primary_key.rb, line 31
    def id?
      sync_with_transaction_state
      query_attribute(self.class.primary_key)
    end

id_before_type_cast() click to toggle source

Returns the primary key value before type cast.

    # File lib/active_record/attribute_methods/primary_key.rb, line 37
    def id_before_type_cast
      sync_with_transaction_state
      read_attribute_before_type_cast(self.class.primary_key)
    end

id_in_database() click to toggle source

    # File lib/active_record/attribute_methods/primary_key.rb, line 48
    def id_in_database
      sync_with_transaction_state
      attribute_in_database(self.class.primary_key)
    end

id_was() click to toggle source

Returns the primary key previous value.

    # File lib/active_record/attribute_methods/primary_key.rb, line 43
    def id_was
      sync_with_transaction_state
      attribute_was(self.class.primary_key)
    end

to_key() click to toggle source

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

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

### Private Instance Methods

attribute_method?(attr_name) click to toggle source
Calls superclass method

    # File lib/active_record/attribute_methods/primary_key.rb, line 55
    def attribute_method?(attr_name)
      attr_name == "id" || super
    end