RoR4 - has_many通过

时间:2014-02-23 19:43:07

标签: ruby-on-rails rails-activerecord

我的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 。为什么?我正在尝试用他们的小组输出所有成员......我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

User类本身没有名为groups的方法。

您可以拥有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