2011-12-11 34 views
0

我正在創建一個應用程序,允許用戶創建團隊,然後向他們添加成員。在rails中has_many關聯表方法。我如何從關聯表中檢索數據?

class User < ActiveRecord::Base 
    has_many :memberships 
    has_many :teams, :through => :memberships 
end 

class Team < ActiveRecord::Base 
    has_many :memberships 
    has_many :users, :through => :memberships 
end 

class Membership < ActiveRecord::Base 
    belongs_to :team 
    belongs_to :user 
end 

成員表包含ID,TEAM_ID,USER_ID,許可

我現在同時訪問Team.users和Team.memberships,但想我需要做的就是將它們結合起來,所以我可以訪問

Team.users.membership.permissions 

OR

Team.users.permissions 

B:從用戶像這樣的權限柱即使我假設有一個簡單的答案,我也無法弄清楚。用戶和會員之間的has_many關聯有效,因爲我可以使用Team.users從團隊訪問用戶。但我不明白如何或爲什麼來自成員資格的權限列也沒有被加入到用戶對象中。對此主題的任何幫助非常感謝。

回答

2

由於用戶只通過成員關係連接到團隊,是不是隻需Team.memberships.map(&:permissions)您需要的代碼?