2012-03-16 65 views
0

我得到未定義的方法'成員」錯誤在我下面的代碼如何從視圖中調用模型中定義的方法?

請告訴我在哪裏下面的代碼會錯...


我有,我有組模型創建部件的製造方法如下

def member(groupid,userid) 
    @members = Membership.all 
    @members.each do |m| 
    if m.group_id == groupid and m.user_id == userid 
     return true 
    end 
    end 
end 

在我groups_controller指數動作

def index 
    @group = Group.all 
end 

和我的組/ index.html.haml我在下面的行

- @group.reverse.each do |group| 
      %tr 
      %ul{:style=>"list-style-type:square"} 
       %td 
       %li= link_to group.groupname,group 
       - if member(@group.id,@current_user.id) 
       = link_to ' Join this group', {:controller => "memberships", 
         :action => "create", 
         :group_id => group.id}, 
         :method => "post"  

但調用此方法中,當我運行代碼,我得到了一個未定義的方法'成員」錯誤

回答

1

memberGroup的實例方法。所以你應該改變這條線

- if group.member(@group.id, @current_user.id) 

但它並不需要是實例方法。它不使用任何狀態或任何東西。所以,讓它成爲一種類方法。

class Group 
    def self.member(groupid,userid) 
    @members = Membership.all 
    @members.each do |m| 
     if m.group_id == groupid and m.user_id == userid 
     return true 
     end 
    end 
    end 
end 

,並調用它是這樣的:

- if Group.member(@group.id, @current_user.id) 
+0

哎塞爾吉奧Tulentsev ...感謝現在的工作的reply..its ... – NJF 2012-03-16 09:31:42

相關問題