众所周知,来自 rails 远程调用的 js RUNTIME 错误将静默失败,如下所述:
http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/
问题通常不是 js.erb 中的 JavaScript 没有被执行,而是它正在被执行并引发错误。默认情况下,当 jQuery 处理 JavaScript 响应时,它会做两件事。它执行(或评估)响应,并将其作为文本返回。
除非,如果 JS 评估出现错误,我们将不会在我们最喜欢的 JavaScript 控制台中看到该错误;自动 JS 评估无声无息地失败,因此 jQuery 似乎只是将响应解释为文本而不是其他任何东西。
当然,你可以看到什么都没有发生,并最终发现链接/按钮是一个 rails 远程调用,然后转到网络选项卡,复制 js 响应,然后粘贴到控制台中。
但是为什么这无法解决,以至于控制台中出现错误而不必弄清楚这一切呢?
这使我认为动态更新应用程序的 rails 远程技术的价值可能应该仅限于呈现表单部分的特定情况,否则,长期使用标准 JQuery.ajax 与返回的承诺对象。