Ruby On Rails模型关系和关联

时间:2017-10-24 19:03:43

标签: ruby-on-rails database-design associations models

我有两个名为Rounds and Teams的模型,每轮有2个团队1和团队2以及他们各自的分数,如team_1_score和team_2_score。团队有很多轮。我知道如何使用从圆表到Teams表的类和外键来处理多个关联。令我感到困惑的是,如何处理各自的分数。例如,有没有办法让第一队得分如first_team.rounds.where('some condition')。得分。我是否可以使用此类原型获得第一个团队得分,如果使用第二个团队对象,则返回第二个团队得分。我期待着任何形式的帮助。那真的很棒。谢谢

1 个答案:

答案 0 :(得分:0)

你有你的模特

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

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

我建议您使用has_many:through关系。这将创建一个全新的表,您可以通过轮次ID和团队ID查询记录,然后返回团队得分。