Jquery Rails ajax未定义的局部变量或方法

Jquery Rails ajax未定义的局部变量或方法,jquery,ruby-on-rails,ajax,null,Jquery,Ruby On Rails,Ajax,Null,我正在尝试将ajax添加到我的应用程序中,以便用户可以在不重新加载页面的情况下跟随其他用户,但我遇到以下错误: 编辑-更正问题 undefined local variable or method `member' for #<#<Class:0x79c3cb0>:0x78b26e0> Extracted source (around line #1): $("#gl_follow_<%= member.id %>").html("<%= escap

我正在尝试将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}) %>");
未定义的局部变量或方法“member”#
提取的源(第1行附近):
$(“#gl_follow"”)html('shared/follow_member2',:locals=>{:member=>@followable})%>”;
以下是我所有的相关代码:

控制器/跟随控制器.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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");
class FollowsController
controller/follow\u members\u 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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");
class followMembersController
查看/search/search.html.erb

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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");

@成员:as=>:成员%>
查看/search/_members.html.erb

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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");

“共享/跟随成员2”,:locals=>{:member=>member}%>
视图/shared/\u follow\u member2.html.erb

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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");

:delete,:remote=>true,title:“Unfollow”,alt:“Unfollow”,:class=>“btn btn follow”%>
:post,:remote=>true,title:“Follow”,alt:“Follow”,:class=>“btn btn\u gl\u fol”%>
查看/跟踪成员/create.js.erb

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
class FollowsMembersController < FollowsController
    def followable
        @followable ||= Member.find_by_user_name(params[:member_id])
    end
end
<div id="member_list_wrap">
    <%= render partial: 'members', :collection => @members, :as => :member %>
</div>
<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>
<% 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 %>
$("#gl_follow_<%= member.id %>").html("<%= escape_javascript(render :partial => 'shared/follow_member2', :locals => {:member => @followable}) %>");
$(“#gl_follow"”)html('shared/follow_member2',:locals=>{:member=>@followable})%>”;
我不确定我错过了什么。我已经能够让ajax在单个用户的页面上工作,但是当页面上列出了多个用户实例时,就无法让它工作

我使用
member.id
指定ajax需要使用哪个按钮


有人能帮我吗?提前感谢。

视图/遵循_members/create.js.erb模板引用
@member.id
,但我看不到它在您的代码中的任何位置被设置,其他所有内容都引用了当前_成员。如果可以从视图中访问
当前成员
,请将
@member.id
更改为
当前成员

基于您显示的代码,并猜测一些片段,我想您应该:

$("#gl_follow_<%= @followable.id %>").html...etc.
$(“gl#u follow”)html…等。

它正在调用此
。我删除了@,得到了这个错误
未定义的局部变量或方法“member”
。为什么它说它是未定义的?根据您所有的其他代码,看起来您应该使用
current_member
我使用member,这样我就可以指定ajax应该使用哪个按钮,因为有多个用户被列出并带有follow按钮。啊,是的,就是这样。我知道这是我忘记的事情。非常感谢。不用客气,很高兴这是一个简单的解决方案。不要把它当成个人问题,但我已经把你的问题提交给你了,因为这只是一个简单的打字错误,这个问题/答案可能不会帮助任何其他遇到它的人。