Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 包括关联_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 4 - Fatal编程技术网

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)