2012-04-19 45 views
0

我是相当新的轨道和我挣扎我已经浏览了很多这里的问题,我认为我的知识差距真的让我把两个和两个一起。轨道上的红宝石基本网球联盟的模型协会功能

该网站是为一个女子双打网球联赛。

这是我迄今为止所做的,我想我需要回过头几步。

我用钢轨产生支架创建4个模型和视图等等等等控制器

的模型是这样的:

players: 
firstname 
lastname 
timestamps 

teams: 
playerone 
playertwo 
timestamps 

fixtures: 
team1 
team2 
court 
division 
date 
timestamps 

results: 
fixture 
set1team1 
set1team2 
set2team1 
set2team2 
set3team1 
set3team2 
team1 
team2 
timestamps 

现在我想建立关联,以便球队有两名球员(playerone,playertwo),每个球员有两个球队(team1,team2)。

然后,我希望结果模型中的灯具与灯具模型中的记录相关联。

的球队打3套6场比赛所以在结果模型中的独立字段,记录每队每组比赛的结果,然后给出最终得分的球队。如果一支球队赢得了这场比赛(首局到6场比赛),他们将获得额外的6分。

这是我试图与关系。

class Team < ActiveRecord::Base 
    has_many :players 
    has_one :playerone, :class_name => "Player", :foreign_key => "player" 
    has_one :playertwo, :class_name => "Player", :foreign_key => "player" 
end 

class Player < ActiveRecord::Base 
    belongs_to :team 
end 

class Result < ActiveRecord::Base 
    has_one :fixture 
end 

class Fixture < ActiveRecord::Base 
    has_many :teams 
end 

我似乎有意见和布局在轨道上的诀窍,但我没有得到我的头一轮强大的侧呢。

我一直在看很多教程,但这一直令我非常沮丧,我希望有人可以提供帮助。

在此先感谢。

亚当

回答

0

没有必要去尝试,并定义playerone和playertwo的关系。在团队的编辑视图中,您将有两个选择,每个选择都从玩家列表中进行选择。

与Fixture一样,不需要任何关系。事实上,我现在看不出有任何关系需要以您将模型分层的方式,您只需在编辑视图中创建各种选择,从适当的模型中进行选择即可。

用这种方式来看,有两个'has'关系,has_one或has_many,接近它就像有'has_two'或'has_three'关系,没有这种关系,这些事实已经被硬编码您的模型属性。

+0

所以我应该删除团队和玩家的关系,并只使用一个选择,以便表格列包含相同的数据,但它们不相关? 然后相同的灯具? – user1339378 2012-04-19 16:56:30

+0

是的,你的观点(玩家一和玩家二的选择实际上是强制执行适当的关系。 – RadBrad 2012-04-19 18:10:13