2012-02-08 109 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在这里保持清晰。此外,你可以通过将你的比赛添加到一个团队来做同样的事情,但这似乎不那么直观。