2010-09-30 82 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將自動使用此表而不需要額外的模型。

相關問題