Ruby on Rails - 模型关系

时间:2012-09-14 09:54:40

标签: ruby-on-rails

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

1 个答案:

答案 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