2012-03-19 13 views
0

我的問題是我想顯示emailids的用戶目前是該特定組的成員,但我沒有得到如何做到這一點。我嘗試不同的組合,但我仍不能做我想做的......如何訪問has_many中的字段屬於協會


我使用的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

prasvin ..yeah我試圖逸也,但我得到的錯誤是未定義的方法'EMAILID」 – NJF 2012-03-19 10:46:09

+0

sryy我的錯...正在給wriong fieldname ...正在運行fyn ....謝謝 – NJF 2012-03-19 10:58:28

回答

1

其實membership.user_id得到你的用戶的ID本質上是一個Fixnum。所以,在Fixnum上調用.user會導致錯誤。

相反,你可以簡單地做membership.user它提供了一個用戶對象,然後在其上調用其他方法membership.user.emailid