Ruby on rails 为什么Rails应用程序只在使用Firefox和本地服务器时才发送两个Ajax请求而不是一个?
我正在学习Rails开发,正在构建一个类似reddit的应用程序,通过对评论和帖子进行投票来帮助学习。我已经完成了投票,现在在我的本地机器上,当我向上或向下投票一篇帖子/评论时,它会发送两个请求,并在任何一个对象上创建两个投票。这些投票可在我的投票表中查看 这只发生在Firefox中(不是Chrome或IE),而且只发生在我的本地机器上(在Heroku中也可以)。我用Firebug验证了它发送了两个请求,但我不知道为什么。我不相信我的资产管道是造成麻烦的原因,因为那里没有太多 这只是在我修改投票行为后才开始的,从每次投票时重新加载页面到使用Ajax显示投票总数。请注意,用户现在可以根据自己的意愿进行多次投票 我的代码在github上,如下所示: 我的应用程序位于Heroku的以下位置: 我不知道什么代码会有帮助,但下面是我的PostsController中的内容:Ruby on rails 为什么Rails应用程序只在使用Firefox和本地服务器时才发送两个Ajax请求而不是一个?,ruby-on-rails,ajax,firefox,Ruby On Rails,Ajax,Firefox,我正在学习Rails开发,正在构建一个类似reddit的应用程序,通过对评论和帖子进行投票来帮助学习。我已经完成了投票,现在在我的本地机器上,当我向上或向下投票一篇帖子/评论时,它会发送两个请求,并在任何一个对象上创建两个投票。这些投票可在我的投票表中查看 这只发生在Firefox中(不是Chrome或IE),而且只发生在我的本地机器上(在Heroku中也可以)。我用Firebug验证了它发送了两个请求,但我不知道为什么。我不相信我的资产管道是造成麻烦的原因,因为那里没有太多 这只是在我修改投票
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
被加载了两次。在这个线程的帮助下得到了修复:(我发誓我到处寻找了一个预先存在的线程)。