【发布时间】:2015-04-20 08:02:06
【问题描述】:
我正在尝试将 ajax 添加到我的应用中,以便用户无需重新加载页面即可关注其他用户,但出现以下错误:
编辑 - 更正问题
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}) %>");
这是我所有的相关代码:
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}) %>");
我不确定我错过了什么。我已经能够让 ajax 在单个用户的页面上工作,但是当页面上列出的用户有多个实例时,我无法让这个工作。
我使用member.id 来指定ajax 需要处理的按钮。
有人可以帮我解决这个问题吗?提前致谢。
【问题讨论】:
标签: jquery ruby-on-rails ajax null