Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Rails 4:有没有人遇到过jquery_ujs破坏回调url的情况,这会破坏ajax屏幕更新?_Jquery_Ruby On Rails_Ruby_Ajax_Ruby On Rails 4 - Fatal编程技术网

Rails 4:有没有人遇到过jquery_ujs破坏回调url的情况,这会破坏ajax屏幕更新?

Rails 4:有没有人遇到过jquery_ujs破坏回调url的情况,这会破坏ajax屏幕更新?,jquery,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Jquery,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,Catch-22——如果我在我的应用程序中加载jquery_ujs,在执行时我观察到jquery_ujs代码从rails中拉出错误的路径/url值,当它从服务器请求不存在的url时,会产生一个安静(e) 如果我没有在application.js中加载jquery_ujs,回调url不会被破坏,页面也会按预期更新,但我会放弃rails.js。嘘 rails的新特性。我不知道答案是否就在眼前。也许是的。我可能有宝石碰撞问题吗?思想?建议 可能相关:使用谷歌地图api。地图画布上的活动侦听器 appl

Catch-22——如果我在我的应用程序中加载jquery_ujs,在执行时我观察到jquery_ujs代码从rails中拉出错误的路径/url值,当它从服务器请求不存在的url时,会产生一个安静(e)

如果我没有在application.js中加载jquery_ujs,回调url不会被破坏,页面也会按预期更新,但我会放弃rails.js。嘘

rails的新特性。我不知道答案是否就在眼前。也许是的。我可能有宝石碰撞问题吗?思想?建议

可能相关:使用谷歌地图api。地图画布上的活动侦听器

application.js(不带jquery\u ujs) (rails.js不在树中)

Gemfile
尝试了没有加载Google Map API DOM侦听器且没有TurboLink的瘦版应用程序。Ajax可以工作。把谷歌地图API放回去,ajax仍然可以工作。TurboLink重新添加,ajax被破坏

我通过执行以下操作恢复了Turbolinks和DOM侦听器回调:

  • 将rails更新为4.2.0(无论如何都需要这样做)

  • 将jquery_rails及其运行时依赖项添加到gemfile中

    gem'jqueryrails',“~>4.0.3”

    gem“rails dom测试”,“~>1.0.5”

    gem'railties',“~>4.2.0”

    宝石“雷神”,“~>0.19.1”

    宝石“nokogiri”

    gem'activesupport',“~>4.2.0”

  • Application.js

    //=需要jquery

    //=需要jquery.turbolinks

    //=需要jquery\u ujs

    //=需要引导

    //=需要涡轮链路

    //=需要一棵树

  • Javascript挂钩

  • destroy.js

    // Ajax handlers, destroy a following relationship
    $("#follow_form").html("<%= escape_javascript(render('/users/follow')) %>");
    $("#followers").html('<%= @user.followers.count %>');
    
    //Ajax处理程序,销毁以下关系
    $(“#follow_form”).html(“”);
    $(“#followers”).html(“”);
    
    create.js

    // Ajax handler, create a following relationship
    $("#follow_form").html("<%= escape_javascript(render('/users/unfollow')) %>");
    $("#followers").html('<%= @user.followers.count %>');
    
    //Ajax处理程序,创建以下关系
    $(“#follow_form”).html(“”);
    $(“#followers”).html(“”);
    
    Turbolinks是您需要在使用时做出明智决定的东西。它有优点也有缺点。确实存在一些问题,但我现在会坚持下去


    已添加
    发布了另一个问答,让我们更清楚地了解这个琐碎的问题:

    我真的不明白问题是什么,但这与问题是jquery_ujs非常不同。我将尝试两件事:首先将Rails升级到4.2,看看问题是否仍然存在,如果这不能解决问题,我将删除TurboLink并尝试不使用它。这只是出于测试目的,只是猜测,奇怪的是发生了什么。也许你应该仔细看看你的代码我绝对不会排除我的代码。。。我将尝试你的测试建议并发布结果。尝试Rails 4.2是个好主意。谢谢,章鱼保罗。谢谢,@Octopus Paul我两次都试过了,结果都被turbolinks弄坏了。我确实找到了一个修复程序,它似乎允许我保留turbolinks和jquery_js。以下是相关信息:turbolinks导致的用于插入修复绑定事件的jquery插件问题如果有人遇到此线程寻找信息,这是turbolinks开放问题的git资源。TurboLink可能会产生难以调试的问题,但您必须权衡它提供的优势与可能带来的问题,然后做出决定。
    // Ajax handlers, destroy a following relationship
    $("#follow_form").html("<%= escape_javascript(render('/users/follow')) %>");
    $("#followers").html('<%= @user.followers.count %>');
    
    // Ajax handler, create a following relationship
    $("#follow_form").html("<%= escape_javascript(render('/users/unfollow')) %>");
    $("#followers").html('<%= @user.followers.count %>');