123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::AttributeMethods::Read

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

Overview

=====================================

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.

append_features, prepend_features

Instance Method Summary

Instance Method Details

#_read_attribute(attr_name) Also known as: #attribute

This method is for internal use only.

Internal read without alias resolution. An uninitialized attribute returns nil.

[ GitHub ]

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

def _read_attribute(attr_name) # :nodoc:
  @attributes.fetch_value!(attr_name)
rescue ActiveModel::MissingAttributeError
  raise if @attributes.key?(attr_name)
end

#_read_attribute!(attr_name)

This method is for internal use only.

Internal read without alias resolution that raises for uninitialized attributes.

[ GitHub ]

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

def _read_attribute!(attr_name) # :nodoc:
  @attributes.fetch_value!(attr_name)
rescue ActiveModel::MissingAttributeError
  raise if @attributes.key?(attr_name)
  missing_attribute(attr_name, RUBY_VERSION >= "3.4" ? caller_locations : caller)
end

#attribute(attr_name) (private)

Alias for #_read_attribute.

[ GitHub ]

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

alias :attribute :_read_attribute

#read_attr(attr_name)

This method is for internal use only.

Like #read_attribute, but attr_name must be a ::String and no block is forwarded. An uninitialized attribute returns nil.

[ GitHub ]

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

def read_attr(attr_name) # :nodoc:
  attr_name = resolve_alias(attr_name)
  @attributes.fetch_value!(attr_name)
rescue ActiveModel::MissingAttributeError
  raise if @attributes.key?(attr_name)
end

#read_attribute(attr_name, &block)

Returns the value of the attribute identified by attr_name after it has been type cast. For example, a date attribute will cast "2004-12-12" to Date.new(2004, 12, 12). (For information about specific type casting behavior, see the types under ::ActiveModel::Type.)

[ GitHub ]

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

def read_attribute(attr_name, &block)
  name = resolve_alias(attr_name.is_a?(Symbol) ? attr_name.name : attr_name.to_s)

  @attributes.fetch_value(name, &block)
end