Reputation: 435
I am getting undefined method `member' error in my following code
Pls tell where am i going wrong in the following code...
I have groups model in which i have created member method as follows
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
in my groups_controller index action :
def index
@group = Group.all
end
and inside my groups/index.html.haml i am calling this method at following line
- @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"
but when i run code i get undefined method `member' error
Upvotes: 0
Views: 2329
Reputation: 230336
member
is an instance method of Group
. So you should change that line to
- if group.member(@group.id, @current_user.id)
But it doesn't need to be instance method. It doesn't use any state or anything. So, make it a class method.
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
And call it like this:
- if Group.member(@group.id, @current_user.id)
Upvotes: 1