我正在为Ruby on Rails开发一个小应用程序,我对模型之间的关系提出了一个问题。
我有“团队”在“匹配”中相互对战
这些表目前看起来像这样,但我可能需要对匹配表进行一些更改。
队:
id | Name
1 | some-name#1
2 | some-name#2
3 | some-name#3
匹配
id | team_id1 | team_id2 | result1 | result2
1 | 2 | 3 | -1 | -1
在此示例中,ID为2的团队与ID为3的团队进行比赛。结果尚未输入,因此两者都设置为“-1”。如果第2队以3:7的分数对阵第3队,则结果1为“3”,结果为2“7”
一支球队有很多比赛,一场比赛属于两支球队。
如何在Rails中建模关系?
答案 0 :(得分:4)
team.rb
has_many :matches
matches.rb
belongs_to :team_one, :foreign_key => "team_id1", :class_name => "Team"
belongs_to :team_two, :foreign_key => "team_id2", :class_name => "Team"
在这种情况下,假设您想要从匹配对象中找到第一队的名字和队友名字
match = match.find(1)
match.team_one.name ### gives -> some-name#2
match.team_two.name ### gives -> some-name#3