title: Rails ActiveRecord helper find method not eager loading association
body: <p>I have the following models: Game and Pick. There's a one to many association between Game and Pick. There's a third model called Player, a Player has many Picks.</p>
  
  <p>There's a method in the Player class that finds a pick for a given game or creates a new one if it doesn't exist.</p>
  
  <pre><code>class Player &lt; ActiveRecord::Base
    has_many :picks
  
    def pick_for_game(game)
      game_id = game.instance_of?(Game) ? game.id : game
      picks.find_or_initialize_by_game_id(game_id)
    end
  end
  </code></pre>
  
  <p>I want to eager load the games for each pick. However if I do</p>
  
  <pre><code>picks.find_or_initialize_by_game_id(game_id, :include =&gt; :game)
  </code></pre>
  
  <p>It first fetches the picks when this query is run (the method is run multiple times), then fetches the games as each pick is accessed. If I add a default_scope to the Pick class</p>
  
  <pre><code>class Pick &lt; ActiveRecord::Base
    belongs_to :game
    belongs_to :player
    default_scope :include =&gt; :game
  end
  </code></pre>
  
  <p>It still generates 2 select statements for each pick, but now it loads the game right after the pick, but it still doesn't do a join like I'm expecting.</p>
  
  <pre><code>Pick Load (0.2ms)  SELECT "picks".* FROM "picks" WHERE "picks"."game_id" = 1 AND ("picks".player_id = 1) LIMIT 1
  Game Load (0.4ms)  SELECT "games".* FROM "games" WHERE ("games"."id" = 1)
  </code></pre>