123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::AttributeMethods::Read

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activerecord/lib/active_record/attribute_methods/read.rb

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Method Summary

  • #_read_attribute(attr_name, &block) (also: #attribute)

    This method exists to avoid the expensive primary_key check internally, without breaking compatibility with the read_attribute API.

  • #read_attribute(attr_name, &block)

    Returns the value of the attribute identified by attr_name after it has been typecast (for example, “2004-12-12” in a date column is cast to a date object, like Date.new(2004, 12, 12)).

Instance Method Details

#_read_attribute(attr_name, &block) Also known as: #attribute

This method exists to avoid the expensive primary_key check internally, without breaking compatibility with the read_attribute API

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/read.rb', line 35

def _read_attribute(attr_name, &block) # :nodoc
  @attributes.fetch_value(attr_name, &block)
end

#read_attribute(attr_name, &block)

Returns the value of the attribute identified by attr_name after it has been typecast (for example, “2004-12-12” in a date column is cast to a date object, like Date.new(2004, 12, 12)).

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/read.rb', line 25

def read_attribute(attr_name, &block)
  name = attr_name.to_s
  name = self.class.attribute_aliases[name] || name

  name = @primary_key if name == "id" && @primary_key
  @attributes.fetch_value(name, &block)
end