2012-08-31 47 views
3

列有三個型號,User,TeamMembership。在成員模型中,有一個字段,角色,存儲當前團隊的用戶角色。包含has_many到

當一個團隊得到了很多用戶,我列出他們並顯示團隊的用戶角色時,我的查詢計數當然會爆炸。

是否有加載所有Team用戶幷包含Membership模型中的角色列的方法?

User 
has_many :memberships, dependent: :destroy 
has_many :teams,  through: :memberships 

Team 
has_many :memberships, dependent: :destroy 
has_many :users,  through: :memberships 

Membership 
belongs_to :user 
belongs_to :team 

回答

5

我相信這會工作

team = Team.first #for example 
users = team.users.select("*, memberships.role AS role") 

因此每個用戶都將獲得角色

users.first.role 
+0

真棒!它像一個魅力。 – sandelius