2012-02-26 54 views
0

我在Rails 3.1中构建了一个CoverItLive的克隆,并且想要自动更新评论流。我在视图中使用了部分内容来显示评论。有很多关于在Rails中使用UJS和AJAX机智形式或按钮或链接的信息,但我找不到任何具体示例来说明我需要做什么。

我假设.ajax()是最好的方法,但我从来没有使用过它,并不确定在使用此特定功能时是否需要提供.js.erb文件?我可以让控制器发回JSON回到客户端并从那里出发,或者在轨道上有更好的方法吗?

这是我在想什么,到目前为止,基于我在另一个问题阅读:

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

作为替代你应该考虑Private Pub,宝石,瑞安·贝茨已经把togeather。在railscasts上查看关于它的截屏视频。

您的解决方案的麻烦现在经常会导致您的服务器不必要地被命中,我想这取决于您将查看此页面的并发用户数。

如果你不下去你的路线.js.erb可能只是有它这样的财产以后:

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

这人换掉整个区域你可以只append新评论的底部该地区

+0

该gem看起来很有趣,虽然我通常犹豫不决,没有一个很好的理由(除了方便之外)添加依赖关系,除非我花时间了解它们是如何工作的,但由于它是瑞恩,我至少可以指望它主要面向未来。我必须花时间观看Railscast。 – Slick23 2012-02-26 19:19:39