I'm trying to add ajax to my app so a user can follow another user without reloading the page, but I'm getting the following error:
Edit - correct issue
undefined local variable or method `member' for #<#<Class:0x79c3cb0>:0x78b26e0>
Extracted source (around line #1):
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");
Here's all my relevant code:
controllers/follows_controller.rb
class FollowsController < ApplicationController
before_filter :authenticate_member!
def create
current_member.follow(followable)
respond_to do |format|
format.html # index.html.erb
format.js
end
end
def destroy
current_member.stop_following(followable)
respond_to do |format|
format.html # index.html.erb
format.js
end
end
end
controllers/follows_members_controller.rb
class FollowsMembersController < FollowsController
def followable
@followable ||= Member.find_by_user_name(params[:member_id])
end
end
views/search/search.html.erb
<div id="member_list_wrap">
<%= render partial: 'members', :collection => @members, :as => :member %>
</div>
views/search/_members.html.erb
<div id="member_item_wrap">
<div class="avatar">
<%= follow_profile_link member, title: member.full_name, alt: member.full_name %>
</div>
<% if current_member != member && member_signed_in? %>
<span id="gl_follow_<%= member.id %>" class="gl_follow">
<%= render :partial => "shared/follow_member2", :locals => {:member => member} %>
</span>
<% end %>
</div>
views/shared/_follow_member2.html.erb
<% if current_member.following?(member) %>
<%= link_to (image_tag("Following.png", class: "gl_fol") + " Following"), member_follow_path(member.to_param, current_member.get_follow(member).id), :method => :delete, :remote => true, title: "Unfollow", alt: "Unfollow", :class => "btn btn-follow" %>
<% else %>
<%= link_to (image_tag("Follow.png", class: "gl_fol") + " Follow"), member_follows_path(member.to_param), :method => :post, :remote => true, title: "Follow", alt: "Follow", :class => "btn btn_gl_fol" %>
<% end %>
views/follows_members/create.js.erb
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");
I'm not sure what I'm missing. I've been able to get ajax working on a single users' page but can't get this working when there are multiple instances on users listed on the page.
I'm using member.id to specify which button the ajax needs to work on.
Can someone help me with this? Thanks in advance.