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

时间:2016-10-02 16:02:39

标签: mysql ruby-on-rails database associations

我正在使用rails并且我有这种困境:

我的关联设置如下:

团队 - >播放器 - >匹配 - >游戏 - > PlayerStats

就像在,球队有球员,球员有比赛,比赛最好有五个并且有比赛,并且比赛中的每个球员都有统计数据。

然而,如果我想让球员达到目标,我必须循环完成所有比赛,并且每场比赛都要看每场比赛并从每场比赛中抽出他们的统计数据。

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

1 个答案:

答案 0 :(得分:1)

您的架构应如下所示

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)