为什么没有@ event.users.size工作?
问题描述:
试图让用户总数为给定的事件,我想我有什么应该工作,但我得到以下几点:为什么没有@ event.users.size工作?
找不到源协会(S):模型squads_users队。试试'has_many:users,:through =>:squads,:source =>'。是以下其中一个:team,:event,:event_division,:users,:point_adjustments,:checkpoint_squads,:division或:checkpoints?
我的ActiveRecord的功夫是弱: -/
事件
队
has_many :squads
队
belongs_to :event
belongs_to :team
has_and_belongs_to_many :users
SquadsUsers
belongs_to :user
belongs_to :squad
用户
has_and_belongs_to_many :squads
答
您的加入模式是否真的名为SquadsUsers?这可能是问题所在。它应该是SquadUser。
另外,我想你想要事件和团队之间的多对多关系,而不是事件和小队,是正确的吗?在这种情况下,你需要这样的:
Event
has_many :event_teams
has_many :teams, :through => :event_teams
EventTeam
belongs_to :event
belongs_to :team
Team
has_many :squads
Squad
belongs_to :team
has_many :squad_users
has_many :users, :through => :squad_users
SquadUser
belongs_to :squad
belongs_to :user
User
has_many :squads
答
您应该删除您SquadsUsers模型,只是有一个表叫squads_users。 has_and_belongs_to_many将自动使用此表而不需要额外的模型。
一支可以发送超过一个小队的事件...这就是为什么我设置了活动,并通过团队小队之间的关联。 – 2010-10-01 13:19:32
我一直在修补这一段时间,并没有取得任何进展。我解释为什么我通过小队加入团队参加活动有意义吗? – 2010-10-01 13:55:17
我懂了!问题是我在我的小队模型中有一个event_id列。所以在我的事件模型中,当我说has_many时:users,:through =>:班组我必须指定源...在这种情况下:squad_users。 – 2010-10-01 14:09:44