Rails 通过多个模型获取数据?

Rails getting data through multiple models?

我正在与 rails 一起工作,但我遇到了这样的困境:

我的关联设置是这样的:

团队 -> 玩家 -> 比赛 -> 游戏 -> PlayerStats

例如,球队有球员,球员有比赛,比赛是五局三胜制,比赛有比赛,比赛中的每个球员都有统计数据。

但是,如果我想获得球员的总进球数,我必须循环遍历他们的所有比赛,并且对于每场比赛,查看每场比赛并从每场比赛中提取他们的统计数据。

如果我在加载页面时对多个统计信息执行此操作会不会太费力?是否有更好的方法来解决这个问题?

您的架构应如下所示

Team(id, name)
Player(id, name)
Match(id, name)
Game(id, name, match_id)
PlayerStat(id, match_id, team_id, player_id, game_id, goal_count)

对于球员总进球查询将为

player.player_stats.sum(:goal_count)

相同
PlayerStat.where(player_id: 2).sum(:goal_count)