123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::Key::Single

Do not use. This class is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Key
Instance Chain:
self, Key
Inherits: Key
  • ::Object
Defined in: activerecord/lib/active_record/key.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(name) ⇒ Single

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 83

def initialize(name)
  @name = -name.to_s
  @columns = [@name].freeze
end

Instance Attribute Details

#composite?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 88

def composite?
  false
end

Instance Method Details

#arel_columns(table)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 96

def arel_columns(table)
  table[@name]
end

#cast(value, model)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 100

def cast(value, model)
  model.type_for_attribute(@name).cast(value)
end

#expects_multiple_ids?(value) ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 108

def expects_multiple_ids?(value)
  value.is_a?(Array)
end

#inferred_id

Only composite keys have a single id to infer.

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 113

def inferred_id
  nil
end

#value_of(record)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 104

def value_of(record)
  record._read_attribute(@name)
end

#where_clauses(values)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 117

def where_clauses(values)
  [where_hash(values)]
end

#where_hash(values)

[ GitHub ]

  
# File 'activerecord/lib/active_record/key.rb', line 92

def where_hash(values)
  { @name => values }
end