我的问题是我想要显示当前该特定群组成员的emailids
用户,但我不知道如何做到这一点。我尝试了不同的组合,但我仍然无法做我想做的事情......
我通过关联使用has_many如下:
class Group < ActiveRecord::Base
has_many :memberships , :dependent => :destroy
has_many :users, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, :foreign_key => "user_id",:dependent => :destroy
has_many :groups, :through => :memberships
end
在我的group/show.html.haml
内,我正在运行以下循环,并且我希望显示该特定群组的emailids
成员:
%table
- @group.memberships.each do |membership|
%tr
%td= membership.user_id.user.emailid
%td= membership.role
在上面的代码中,%td= membership.role
工作正常,这意味着我正在正确运行循环。我无法正确编写%td= membership.user_id.user.emailid
代码。我收到的错误如下:
undefined method `user'**
如何访问当前为该群组成员的emailid
个用户?
答案 0 :(得分:1)
实际上membership.user_id
会为您提供用户的ID,它实际上是一个Fixnum。因此,在Fixnum上调用.user会导致错误。
相反,您可以简单地执行提供用户对象的membership.user
,然后将其他方法调用为membership.user.emailid