2013-09-20 102 views
0

我有兩個模型:球員和球隊。這些模型之間應該建立什麼樣的關係?

  • 玩家有一個團隊

  • 隊上有5個字段(除了它的名稱和位置),opponent_week_1,opponent_week_2等

我想能夠說出類似Player.Team.opponent_week_1

我應該如何將模型相互關聯?球員has_one球隊?

如何設置團隊的對手?我不希望球隊擁有多少對手,因爲只有那5個,我希望能夠說出opponent_week_1,opponent_week_2等。

我正在使用Ruby 2和Rails 4.謝謝!

回答

1

jackerman09之間HABTM(has_and_belongs_to_many)的關係,

與Rails中很多事情,還有的去了解它的一些方法。 @phgrey指出瞭如何解決球員和球隊。

關於opponent_week_1,2等:

我認爲最好的辦法是,如果你真的有來自團隊模型has_may :opponent_week協會,如:

class Team < ActiveRecord::Base 
... 
    has_many :fields 
... 
end 

你那麼必須通過驗證和/或通過表格將每個隊伍的對手週數限制爲5個。由於用戶將通過表單進入這些對手周,這首先是一個簡單的方法。你可以控制表格,所以只需通過表格限制每個團隊投入多少個對手周。

你怎麼回事打電話給他們opponent_week_1,opponent_week_2等:有幾種方法。我會嘗試在你的模型中添加一個method_missing方法(谷歌,看看怎麼做),然後解析你調用的方法的名稱。這樣的事情:

def method_missing(method_name) 
    if method_name.starts_with?("opponent_week_") 
    # get the number at the end, then call 
    opponent_weeks[ num_of_week - 1 ] 
    else 
    super 
    end 
end 

一切順利,讓我知道如果你需要澄清。

0

看看這裏 - http://guides.rubyonrails.org/association_basics.html

1.玩家< =>團隊

class Player < ActiveRecord::Base 
... 
    belongs_to :team 
... 
end 

class Team < ActiveRecord::Base 
... 
    has_many :players 
... 
end 

確保遷移create_players有場

t.references :team_id 

2. Oppenents 你領導我們rsest的方式。更好地看一看命令

相關問題