我正在Rails 3.1中构建一个CoverItLive的克隆,并希望自动更新注释流。我在视图中使用部分显示注释。关于在Rails中使用UJS和AJAX机智表单或按钮或链接有很多信息,但我找不到任何具体的例子来说明我需要做的事情。
我假设.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);
答案 0 :(得分:0)
作为替代方案,你应该看看Private Pub,这是Ryan Bates为其设置的宝石。在railscasts上查看有关它的截屏视频。
您的解决方案的问题现在通常是您的服务器将被不必要的打击,我想这取决于您将查看此页面的并发用户的数量。
如果你确实沿着你的路线行进,.js.erb就会有这样的东西:
$('#id_of_area_to_replace').html("<%= escape_javascript(render"comments/index") %>")
这将取代整个区域,你只能append新评论到区域底部