2012-02-08 108 views
1

我有以下型號:如何創建Rails的has_many_and_belongs_to_many關係的兩個對象之間的關係

class Match < ActiveRecord::Base 

has_and_belongs_to_many :teams 

end 

而且

class Team < ActiveRecord::Base 

has_and_belongs_to_many :matches 

end 

它們與matches_teams表連接在一起。

看來我的東西設置正確。例如,我可以讓@ team.matches工作。

我的問題是我將如何去分配兩個特定的球隊比賽?在rails控制檯中,我可以去:@ team.match.create,它可以工作,但會創建與該團隊相關的新匹配。我如何讓另一個團隊參加該協會?

我對Rails相當陌生,如果這還不是很明顯的話。謝謝!

+0

我不認爲比賽has_and_belongs_to_many:球隊,我認爲比賽有主隊和客隊。您可以使用這些關聯完全消除matches_team表。 – 2012-02-08 01:08:24

回答

0

一步一步,如果你想兩支球隊添加到比賽,我認爲你想做的事:

match = Match.create!(...) 
team_one = Team.create!(...) 
team_two = Team.create!(...) 

match.teams << team_one 
match.teams << team_two 

很明顯,你可以凝聚下來,以較少的線路,但我認爲我會d在這裏保持清晰。此外,你可以通過將你的比賽添加到一個團隊來做同樣的事情,但這似乎不那麼直觀。