1

我正在为 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 中的关系?

4

1 回答 1

4

团队.rb

has_many :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
于 2012-09-14T10:03:07.967 回答