title: Why would I NOT want to use inverse_of everywhere?
body: <p>As outlined here:</p>
  
  <p><a href="http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html">http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html</a></p>
  
  <p>inverse_of appears to tell Rails to Cache the in memory associations and minimize Database Queries. Their example is:</p>
  
  <pre><code> class Dungeon &lt; ActiveRecord::Base
     has_many :traps, :inverse_of =&gt; :dungeon
     has_one :evil_wizard, :inverse_of =&gt; :dungeon
   end
  
   class Trap &lt; ActiveRecord::Base
     belongs_to :dungeon, :inverse_of =&gt; :traps
   end
  </code></pre>
  
  <p>Which they immediatly follow with:</p>
  
  <pre><code> for `belongs_to` associations `has_many` inverse associations are ignored.
  </code></pre>
  
  <p>So I have several questions. </p>
  
  <ol>
  <li>Are inverse associations ignored on <code>has_many</code> for a <code>belongs_to</code>? If so, how does their example make sense? Shouldn't it just not do anything?</li>
  <li><p>As far as I can tell (assuming it does anything) All this allows to do is something like:</p>
  
  <pre><code>dungeon.traps.first.dungeon
  </code></pre>
  
  <p>with the final call to <code>.dungeon</code> NOT generating an entire new query, but merely reaching for the in memory association. Assuming that is correct, why would I ever NOT want that behavior? Why wouldn't I just stick <code>inverse_of:</code> on every association?</p></li>
  </ol>