jquery – Rails 3 UJS – 控制器由link_to:remote调用两次

前端之家收集整理的这篇文章主要介绍了jquery – Rails 3 UJS – 控制器由link_to:remote调用两次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的问题,其中JQuery正在为一个link_to方法创建两个AJAX请求。我正在开发一个Rails 3应用程序与JQuery的UJS。我有一个切换链接,在“跟随”和“取消关注”

我的链接呈现如下:

<span id="follow_link">
  <a href="/tfollow_artist?id=8103103" data-method="post" data-remote="true" id="follow_artist" rel="nofollow">Unfollow</a>
</span>

我的控制器设置如下:

def tfollow_artist
  @artist = Artist.find(params[:id])
  if current_user.following?(@artist) 
    current_user.stop_following(@artist)
  else 
    current_user.follow(@artist)
  end
 end

最后渲染一个js为:

$('#follow_link').html('<%= escape_javascript(render :partial => "follow") %>');

其中基本上替换了’< span id =“follow_link”> …< / span>与相同的URL只有文本不同。例如,上面现在将呈现为:

<span id="follow_link">
  <a href="/tfollow_artist?id=8103103" data-method="post" data-remote="true" id="follow_artist" rel="nofollow">Follow</a>
</span>

但是这是以某种方式导致JQuery做出两个AJAX请求。

任何人都能看到这里有什么不对?

我使用’jquery-rails’gem是复制最新的jquery-ujs文件到我的应用程序。 JQuery版本是1.4.3

解决方法

感谢这个对话框:

https://github.com/rails/jquery-ujs/issues/208

我发现jquery和jquery_ujs被包括两次。

我想jquery-rails gem自动将它们放入application.js,然后我也把它们包括在application.js中。

似乎无论什么原因application.js自动捆绑在app /资产/ javascripts / – 即使我删除所有要求的一切。

所以,如果你的:remote =>真正的表单被提交两次,请尝试检查application.js。

希望这可以帮助!

更新:我相信这可能与我有预先呈现我的资产,而不使用摘要,所以,当我的开发环境添加脚本标签动态从app / assets / application.js中的需求,还添加了一个应该是一个空的动态application.js,除了来自public / assets的静态方法被加载。混乱?是的!

原文链接:https://www.f2er.com/jquery/184718.html

猜你在找的jQuery相关文章