2014-02-23 43 views
0

我有一個小問題,通過我的has_many關係。RoR4 - has_many通過

以下關係式給出:

Class User < ActiveRecord:Base 
has_many :group_members 
has_many :groups, through: :group_members 

Class Group < ActiveRecord:Base 
has_many :group_members 
has_many :users, through: :group_members 

Class GroupMember < ActiveRecord:Base 
belongs_to :user 
belongs_to :group 

如果我打電話

@groups = User.groups

我得到一個NoMethodError。爲什麼?我試圖輸出所有成員與他們的團體...我怎麼能做到這一點?

回答

0

User類本身沒有一個稱爲組的方法。

你可以組爲用戶的一個實例,因此

@user.groups 

會工作。

如果你想把所有的組,那麼就去做

Group.all 

如果你希望所有用戶和他們的組,那麼

@users = User.all 

,那麼你將通過它

@users.each do |user| 
    groups = user.groups 
    # Do something like ... 
    puts "#{user.name} has these group" 
    puts group.inspect 
end 
+0

必須循環那麼,我是一個愚蠢的......謝謝:D – Tobias