我的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 :(得分: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