Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails应用程序只在使用Firefox和本地服务器时才发送两个Ajax请求而不是一个?_Ruby On Rails_Ajax_Firefox - Fatal编程技术网

Ruby on rails 为什么Rails应用程序只在使用Firefox和本地服务器时才发送两个Ajax请求而不是一个?

Ruby on rails 为什么Rails应用程序只在使用Firefox和本地服务器时才发送两个Ajax请求而不是一个?,ruby-on-rails,ajax,firefox,Ruby On Rails,Ajax,Firefox,我正在学习Rails开发,正在构建一个类似reddit的应用程序,通过对评论和帖子进行投票来帮助学习。我已经完成了投票,现在在我的本地机器上,当我向上或向下投票一篇帖子/评论时,它会发送两个请求,并在任何一个对象上创建两个投票。这些投票可在我的投票表中查看 这只发生在Firefox中(不是Chrome或IE),而且只发生在我的本地机器上(在Heroku中也可以)。我用Firebug验证了它发送了两个请求,但我不知道为什么。我不相信我的资产管道是造成麻烦的原因,因为那里没有太多 这只是在我修改投票

我正在学习Rails开发,正在构建一个类似reddit的应用程序,通过对评论和帖子进行投票来帮助学习。我已经完成了投票,现在在我的本地机器上,当我向上或向下投票一篇帖子/评论时,它会发送两个请求,并在任何一个对象上创建两个投票。这些投票可在我的投票表中查看

这只发生在Firefox中(不是Chrome或IE),而且只发生在我的本地机器上(在Heroku中也可以)。我用Firebug验证了它发送了两个请求,但我不知道为什么。我不相信我的资产管道是造成麻烦的原因,因为那里没有太多

这只是在我修改投票行为后才开始的,从每次投票时重新加载页面到使用Ajax显示投票总数。请注意,用户现在可以根据自己的意愿进行多次投票

我的代码在github上,如下所示:

我的应用程序位于Heroku的以下位置:

我不知道什么代码会有帮助,但下面是我的PostsController中的内容:

def vote
    @vote = Vote.create(voteable: @post, user: current_user, vote: params[:vote]) 

    respond_to do |format|
      format.html do
        if @vote.vote == false
          flash[:alert] = "Downvote tallied!"
          redirect_to :back
        else
          flash[:success] = "Upvote tallied!"
          redirect_to :back
        end
      end
      format.js
    end    

  end
以下是我的帖子#索引模板中的相关代码:

Net votes: <span id="post_<%=post.id%>_votes"><%= post.net_votes %></span>
<ul>
    <li><%= link_to "Vote Up", vote_post_path(post, vote: true), method: 'post', remote: true %></li>
    <li><%= link_to "Vote Down", vote_post_path(post, vote: false), method: 'post', remote: true %></li>
</ul>   
净投票数:
下面是vote.js.erb代码:

$("#post_<%= @post.id %>_votes").html(<%= @post.net_votes %>);
$(“#投票后”).html();

感谢您的帮助。

我在类似的情况下遇到了这个问题,它与在
public/assets
中预编译资产有关。这导致
application.js
被加载了两次。

在这个线程的帮助下得到了修复:(我发誓我到处寻找了一个预先存在的线程)。