title: How does eager loading work? I mean I know what it 'does' but can I replicated it by doing a 'side' query?
body: <p>Is there a way to do a second query and have that replicate the functionality of eager loading?  Lets say a real basic example.  A Person has many Cars and a Car has many Parts..</p>
  
  <p>Typically to eager load you would say:</p>
  
  <pre><code>person.cars.includes(:parts)
  </code></pre>
  
  <p>I don't really understand what this does.. does it just load those other objects in memory? Are they associated with each car at this point in a more substantial way then just sharing keys?  If its just sharing keys.. could I load these 'Parts' in memory and have them accessed without calling the 'includes' explicitly?  For example.. something like:</p>
  
  <pre><code>cars = person.cars
  cars_id_array &lt;&lt; insert cars ids here
  parts = Parts.where(:user_id =&gt; person_id, "car_id IN cars_id_array") (just an example)
  </code></pre>
  
  <p>In this case (assuming i did the write code which I'm sure I didn't.. could I go car1.parts, car2.parts and would those parts be already loaded in memory?</p>
  
  <p>If not, what is eager loading doing?</p>