title: CollectionProxy vs AssociationRelation
body: <p>I am wondering about the difference between <code>ActiveRecord::Associations::CollectionProxy</code> and <code>ActiveRecord::AssociationRelation</code>.</p>
  
  <pre><code>class Vehicle &lt; ActiveRecord::Base
    has_many :wheels
  end
  
  class Wheel &lt; ActiveRecord::Base
    belongs_to :vehicle
  end
  </code></pre>
  
  <p><strong>So if I do:</strong></p>
  
  <p><code>v = Vehicle.new</code></p>
  
  <p><code>v.wheels # =&gt; #&lt;ActiveRecord::Associations::CollectionProxy []&gt;</code></p>
  
  <p><code>v.wheels.all # =&gt; #&lt;ActiveRecord::AssociationRelation []&gt;</code></p>
  
  <p>I have no idea what is the difference between them and why this is implemented this way?</p>