ruby on rails模型协会功能,适用于基础网球联赛

时间:2012-04-19 16:14:58

标签: ruby-on-rails ruby-on-rails-3 model associations

我对rails非常陌生而且我很挣扎我在这里看了很多问题,而且我认为我的知识差距真的让我把两个和两个放在一起。

该网站适用于女子双打网球联赛。

这是我到目前为止所做的,我想我需要退一步。

我使用rails generate scaffold来创建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

我似乎在轨道中拥有视图和布局的诀窍,但我还没有完全掌握强大的一面。

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

提前致谢。

亚当

1 个答案:

答案 0 :(得分:0)

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

与Fixture相同,也不需要那里的关系。事实上,我现在看不出任何与你的模型分层的关系,你只需要在编辑视图中创建各种选择,从适当的模型中选择。

以这种方式看待它,有两个'has'关系,has_one或has_many,你接近它就像有'has_two'或'has_three'的关系,没有这样的关系,那些事实已经硬编码在你的模型属性。