2014-02-23 89 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