Type:
Class

Association proxies in Active Record are middlemen between the object that holds the association, known as the @owner, and the actual associated object, known as the @target. The kind of association any proxy is about is available in @reflection. That's an instance of the class ActiveRecord::Reflection::AssociationReflection.

For example, given

1
2
3
4
5
class Blog < ActiveRecord::Base
  has_many :posts
end
 
blog = Blog.first

the association proxy in blog.posts has the object in blog as @owner, the collection of its posts as @target, and the @reflection object represents a :has_many macro.

This class delegates unknown methods to @target via method_missing.

The @target object is not loaded until needed. For example,

1
blog.posts.count

is computed directly through SQL and does not trigger by itself the instantiation of the actual post records.

uniq
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

uniq() Instance Public methods Alias for:

2025-01-10 15:47:30
create
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

create(attributes = {}, &block) Instance Public methods Returns a new object

2025-01-10 15:47:30
include?
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

include?(record) Instance Public methods Returns true if the given

2025-01-10 15:47:30
distinct
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

distinct() Instance Public methods Specifies whether the records should be unique

2025-01-10 15:47:30
reload
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

reload() Instance Public methods Reloads the collection from the database. Returns

2025-01-10 15:47:30
load_target
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

load_target() Instance Public methods

2025-01-10 15:47:30
<<
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

<<(*records) Instance Public methods Adds one or more records

2025-01-10 15:47:30
length
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

length() Instance Public methods Returns the size of the collection calling

2025-01-10 15:47:30
arel
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

arel() Instance Public methods

2025-01-10 15:47:30
to_a
  • References/Ruby on Rails/Rails/Classes/ActiveRecord/ActiveRecord::Associations/ActiveRecord::Associations::CollectionProxy

to_a() Instance Public methods Alias for:

2025-01-10 15:47:30