Ruby on rails 3 如何使用$.ajax()以设定的间隔更新Rails部分?

Ruby on rails 3 如何使用$.ajax()以设定的间隔更新Rails部分?,ruby-on-rails-3,jquery,Ruby On Rails 3,Jquery,我正在Rails 3.1中构建CoverItLive的一种克隆,希望评论流能够自动更新。我正在视图中使用分部来显示注释。有很多关于在Rails中使用UJS和AJAX wit表单、按钮或链接的信息,但是我找不到任何具体的例子来说明我需要做什么 我假设.ajax()是最好的方法,但我以前从未使用过它,也不确定在使用此特定函数时是否需要提供.js.erb文件?我可以让控制器将JSON发送回客户端并从那里开始,还是rails中有更好的方法 根据我在另一个问题上读到的内容,这就是我目前的想法: setIn

我正在Rails 3.1中构建CoverItLive的一种克隆,希望评论流能够自动更新。我正在视图中使用分部来显示注释。有很多关于在Rails中使用UJS和AJAX wit表单、按钮或链接的信息,但是我找不到任何具体的例子来说明我需要做什么

我假设
.ajax()
是最好的方法,但我以前从未使用过它,也不确定在使用此特定函数时是否需要提供
.js.erb
文件?我可以让控制器将
JSON
发送回客户端并从那里开始,还是rails中有更好的方法

根据我在另一个问题上读到的内容,这就是我目前的想法:

setInterval(function() {
    $.ajax({
        type: 'GET',
        url: ''<%= comments_path(:json) %>'',
        data: {
            data: "comments_data"
        },
        cache: false,
        success: function(result) {
            if (result == "true"){
                alert("true");
            }else{
                alert("false");
            }
        }
    });
}, 3000);
setInterval(函数(){
$.ajax({
键入:“GET”,
url:'''',
数据:{
数据:“评论和数据”
},
cache:false,
成功:功能(结果){
如果(结果=“真”){
警惕(“真实”);
}否则{
警告(“假”);
}
}
});
}, 3000);

作为一个替代方案,您应该研究一下瑞安·贝茨(Ryan Bates)所创造的宝石。在电视上看一段关于它的视频

您的解决方案的问题是,现在您的服务器经常会受到不必要的攻击,我想这取决于您将查看此页面的并发用户数

如果您沿着自己的路线走,那么.js.erb中可能会有这样的东西:

$('#id_of_area_to_replace').html("<%= escape_javascript(render"comments/index") %>")
$(“#id_of_area_to_replace”).html(“”)

这将取代整个区域,否则您只需在区域底部添加新的注释

gem看起来很有趣,尽管我通常在没有真正好的理由(除了方便之外)的情况下不愿添加依赖项,除非我花时间了解它们的工作原理,但既然是Ryan,我至少可以相信这是未来的证明。我得花点时间看火车票。