2010-09-30 83 views
0

试图让用户总数为给定的事件,我想我有什么应该工作,但我得到以下几点:为什么没有@ 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 

回答

0

您的加入模式是否真的名为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 
+0

一支可以发送超过一个小队的事件...这就是为什么我设置了活动,并通过团队小队之间的关联。 – 2010-10-01 13:19:32

+0

我一直在修补这一段时间,并没有取得任何进展。我解释为什么我通过小队加入团队参加活动有意义吗? – 2010-10-01 13:55:17

+0

我懂了!问题是我在我的小队模型中有一个event_id列。所以在我的事件模型中,当我说has_many时:users,:through =>:班组我必须指定源...在这种情况下:squad_users。 – 2010-10-01 14:09:44

0

您应该删除您SquadsUsers模型,只是有一个表叫squads_​​users。 has_and_belongs_to_many将自动使用此表而不需要额外的模型。

相关问题