如何解决Rails中静默失败的js问题?

时间:2012-05-13 23:39:18

标签: jquery ruby-on-rails-3.1 firebug unobtrusive-javascript infinite-scroll

应该注意的是,我不是很熟练使用Firebug,但我没有发现任何可以解释以下问题的错误。

我有一个包含以下代码的feed.js.erb文件:

var $foos = $('<%= escape_javascript(render(@foos)) %>');
$('#container').append($foos);
$('#pagination_button a').attr('href', '<%= feed_path + '?page=' + @page %>');

当第二次 进行此ajax调用时,它似乎无声地失败。我在Firebug控制台中看到了相应的响应,但 $foos未被更改,随后永远不会追加#container

我的html页面只包含一个加载指示符,它在第一次调用时成功替换。第二个调用是从其他javascript(Infinite Scroll)触发的。

如果重要,我注意到第一次调用是使用自动生成的时间戳参数进行的。之后,我将替换目标网址,如您在#pagination_button a上看到的那样。

如何在浏览器中调试?

更新 :我使用ERB使$foos成为动态变量($ foos1 ... $ foos2)并注意到这也无效。因此,即使新的@foos在控制台的响应中可见,我的javascript的第一行也没有被评估。

1 个答案:

答案 0 :(得分:3)

事实证明,Rails没有像JS一样处理我的第二个请求。更重要的是,如果JS引发异常,它将转换为纯文本as explained hereSteve还展示了如何调试ajax代码,有效地回答了我的两个问题。