0

我对 Rails 还很陌生,我很挣扎我已经在这里查看了很多问题,我认为我的知识差距确实阻碍了我将两个和两个放在一起。

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

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

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

现在我想创建关联,以便球队有两名球员(球员一,球员二),每场比赛都有两支球队(球队1,球队2)。

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

球队进行 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

我似乎掌握了rails中的视图和布局的诀窍,但我还没有意识到强大的一面。

我一直在查看许多教程,但这真的让我很沮丧,我希望有人能提供帮助。

提前致谢。

亚当

4

1 回答 1

0

无需尝试为 playerone 和 playertwo 定义关系。在您的团队编辑视图中,您将有两个选择,每个选择都从球员列表中选择。

夹具也是如此,也不需要在那里建立关系。事实上,我认为现在不需要任何关系与您对模型进行分层的方式,您只需要在编辑视图中创建各种选择,从适当的模型中进行选择。

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

于 2012-04-19T16:35:45.723 回答