Class: ActiveRecord::AssociationRelation

Inherits:
Relation show all
Defined in:
activerecord/lib/active_record/association_relation.rb

Constant Summary

Constants inherited from Relation

Relation::INVALID_METHODS_FOR_DELETE_ALL, Relation::MULTI_VALUE_METHODS, Relation::SINGLE_VALUE_METHODS, Relation::VALUE_METHODS

Constants included from FinderMethods

FinderMethods::ONE_AS_ONE

Constants included from QueryMethods

QueryMethods::VALID_UNSCOPING_VALUES

Constants included from Delegation

Delegation::BLACKLISTED_ARRAY_METHODS

Instance Attribute Summary

Attributes inherited from Relation

#klass, #loaded, #table

Instance Method Summary collapse

Methods inherited from Relation

#_update_record, #any?, #as_json, #blank?, #delete, #delete_all, #destroy, #destroy_all, #eager_loading?, #empty?, #encode_with, #explain, #find_or_create_by, #find_or_create_by!, #find_or_initialize_by, #first_or_create, #first_or_create!, #first_or_initialize, #initialize_copy, #insert, #inspect, #joined_includes_values, #load, #many?, #pretty_print, #reload, #reset, #scope_for_create, #scoping, #size, #substitute_values, #to_a, #to_sql, #uniq_value, #update, #update_all, #values, #where_values_hash

Methods included from FinderMethods

#exists?, #fifth, #fifth!, #find, #find_by, #find_by!, #first, #first!, #forty_two, #forty_two!, #fourth, #fourth!, #last, #last!, #raise_record_not_found_exception!, #second, #second!, #take, #take!, #third, #third!

Methods included from Calculations

#average, #calculate, #count, #ids, #maximum, #minimum, #pluck, #sum

Methods included from SpawnMethods

#except, #merge, #merge!, #only, #spawn

Methods included from QueryMethods

#_select!, #arel, #bind, #bind!, #check_cached_relation, #create_with, #create_with!, #create_with_value, #distinct, #distinct!, #eager_load, #eager_load!, #extending, #extending!, #from, #from!, #group, #group!, #having, #having!, #includes, #includes!, #joins, #joins!, #limit, #limit!, #lock, #lock!, #none, #none!, #offset, #offset!, #order, #order!, #preload, #preload!, #readonly, #readonly!, #references, #references!, #reorder, #reorder!, #reverse_order, #reverse_order!, #rewhere, #select, #unscope, #unscope!, #where, #where!

Methods included from ActiveSupport::Concern

#append_features, #class_methods, extended, #included

Methods included from Batches

#find_each, #find_in_batches

Methods included from Explain

#collecting_queries_for_explain, #exec_explain

Methods included from Delegation

#respond_to?

Constructor Details

#initialize(klass, table, association) ⇒ AssociationRelation

Returns a new instance of AssociationRelation.


3
4
5
6
# File 'activerecord/lib/active_record/association_relation.rb', line 3

def initialize(klass, table, association)
  super(klass, table)
  @association = association
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ActiveRecord::Delegation

Instance Method Details

#==(other) ⇒ Object


12
13
14
# File 'activerecord/lib/active_record/association_relation.rb', line 12

def ==(other)
  other == to_a
end

#build(*args, &block) ⇒ Object Also known as: new


16
17
18
# File 'activerecord/lib/active_record/association_relation.rb', line 16

def build(*args, &block)
  scoping { @association.build(*args, &block) }
end

#create(*args, &block) ⇒ Object


21
22
23
# File 'activerecord/lib/active_record/association_relation.rb', line 21

def create(*args, &block)
  scoping { @association.create(*args, &block) }
end

#create!(*args, &block) ⇒ Object


25
26
27
# File 'activerecord/lib/active_record/association_relation.rb', line 25

def create!(*args, &block)
  scoping { @association.create!(*args, &block) }
end

#proxy_associationObject


8
9
10
# File 'activerecord/lib/active_record/association_relation.rb', line 8

def proxy_association
  @association
end