2016-08-24 55 views
1

我如何從較少的查詢加載?包括協會

當前代碼; 控制器;

@players = @season.players.includes(:stats) 

Views;

<% @players.each do |player| %> 
    <%= player.stats.where(season: @season).each do |stat| %> 
    <% end %> 
<% end %> 

查詢;

Season Load (0.1ms) SELECT "seasons".* FROM "seasons" WHERE "seasons"."id" = ? LIMIT 1 [["id", 1]] 
    Player Load (0.2ms) SELECT "players".* FROM "players" INNER JOIN "player_seasons" ON "players"."id" = "player_seasons"."player_id" WHERE "player_seasons"."season_id" = ? [["season_id", 1]] 
    Stat Load (0.3ms) SELECT "stats".* FROM "stats" WHERE "stats"."player_id" IN (1, 2) 
    Stat Load (0.1ms) SELECT "stats".* FROM "stats" WHERE "stats"."player_id" = ? AND "stats"."season_id" = 1 [["player_id", 1]] 
    Stat Load (0.1ms) SELECT "stats".* FROM "stats" WHERE "stats"."player_id" = ? AND "stats"."season_id" = 1 [["player_id", 2]] 
    Rendered seasons/show.html.erb within layouts/application (5.4ms) 

謝謝。

+0

你可以添加當前正在使用的查詢?這將爲我們減少查詢數量提供一個基準。 – kcdragon

+0

爲將來的用戶添加問題會更好。它可能會從imgur中刪除。如果需要的話,複製和粘貼也是不可能的。 – kcdragon

+0

感謝您的建議,我更新了問題。 – user3579614

回答