2012-04-19 42 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