Ruby 关于 Rails 模型关系和关联

Ruby On Rails Model Relationships and Associations

我有两个名为 Rounds 和 Teams 的模型,每轮有 2 个团队 team 1 和 team 2,他们各自的分数如 team_1_score 和 team_2_score。团队有很多回合。我知道如何使用 class 和从回合 table 到团队 table 的外键来处理多个关联。让我感到困惑的是,如何处理他们各自的分数。例如,有没有办法获得第一队得分,如 first_team.rounds.where('some condition').score。我可以使用这样的原型来获得第一队得分吗?如果使用第二队对象,那么它 returns 第二队得分。我期待着任何形式的帮助。那真是太好了。谢谢

你有你的模特

class Round < ApplicationRecord
  has_many :teams
end

class Team < ApplicationRecord
  has_many :rounds
end

要在特定回合中获得特定球队的分数,我会这样做:

@team = Team.find(id: params[:team_id])

score =  Round.where(team_id: @team.id).team_1_score

假设您在存在参数的控制器中执行此操作,否则只需找到团队并按其 ID 舍入并执行

我建议您使用 has_many :through 关系。这将创建一个全新的 table,您可以在其中通过回合 ID 和团队 ID 查询记录,然后 return 团队得分。