Ruby on rails 包括关联
如何从较少的查询中加载此内容 现行代码; 控制器Ruby on rails 包括关联,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 4,如何从较少的查询中加载此内容 现行代码; 控制器 @players = @season.players.includes(:stats) 观点 <% @players.each do |player| %> <%= player.stats.where(season: @season).each do |stat| %> <% end %> <% end %> 谢谢。您是否尝试过使用预加载或急切加载而不是包含 关于各种连接的许多
@players = @season.players.includes(:stats)
观点
<% @players.each do |player| %>
<%= player.stats.where(season: @season).each do |stat| %>
<% end %>
<% end %>
谢谢。您是否尝试过使用
预加载
或急切加载
而不是包含
关于各种连接的许多好信息,可以在这里找到:您是否尝试过
预加载
或急切加载
而不是包含
关于各种连接的许多好信息,可以在这里找到:您可以添加当前正在使用的查询吗?这将为我们提供一个减少查询数量的基线。最好为将来的用户添加这个问题。它可能会从imgur中删除。如果我们需要的话,也不可能复制和粘贴。谢谢你的建议,我已经更新了问题。你打算显示播放器上的任何数据吗?我注意到您首先获取球员,然后获取球员统计数据。如果你所需要的只是球员的统计数据,你可以迭代这些数据。我确实计划包括球员和统计数据。我会像现在一样迭代其他玩家的统计数据,但是那样的话,每个玩家都会有一个新的查询导致n+1问题。我想在最初的控制器查询中加载赛季id和球员id可以解决这个问题吗?但不知道如何做。您可以添加当前正在使用的查询吗?这将为我们提供一个减少查询数量的基线。最好为将来的用户添加这个问题。它可能会从imgur中删除。如果我们需要的话,也不可能复制和粘贴。谢谢你的建议,我已经更新了问题。你打算显示播放器上的任何数据吗?我注意到您首先获取球员,然后获取球员统计数据。如果你所需要的只是球员的统计数据,你可以迭代这些数据。我确实计划包括球员和统计数据。我会像现在一样迭代其他玩家的统计数据,但是那样的话,每个玩家都会有一个新的查询导致n+1问题。我想在最初的控制器查询中加载赛季id和球员id可以解决这个问题吗?但我不知道该怎么做。我让它暂时工作;@players=@seasure.players.includes(:stats).where(stats:{seasure:@seasure})DAn,如果能发布一个与OP问题相关的解决方案,那就太好了;@players=@seasure.players.includes(:stats).where(stats:{seasure:@seasure})DAn,如果能发布一个与OP问题相关的解决方案,那就太好了。
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)