如何创建Rails的has_many_and_belongs_to_many关系的两个对象之间的关系
问题描述:
我有以下型号:如何创建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相当陌生,如果这还不是很明显的话。谢谢!
答
一步一步,如果你想两支球队添加到比赛,我认为你想做的事:
match = Match.create!(...)
team_one = Team.create!(...)
team_two = Team.create!(...)
match.teams << team_one
match.teams << team_two
很明显,你可以凝聚下来,以较少的线路,但我认为我会d在这里保持清晰。此外,你可以通过将你的比赛添加到一个团队来做同样的事情,但这似乎不那么直观。
我不认为比赛has_and_belongs_to_many:球队,我认为比赛有主队和客队。您可以使用这些关联完全消除matches_team表。 – 2012-02-08 01:08:24