如何使用Rails创建实时订阅源

时间:2010-02-03 19:47:16

标签: ruby-on-rails feed

我正在尝试创建一个实时Feed块,用于标识添加到论坛讨论中的最新数据,并使用该论坛上的最新帖子自动更新另一个页面上的块。 我正在使用Ruby on Rails,我真的很感激任何帮助。

(如果我的问题不明确,我希望我可以通过其中一个例子更加具体)。我正在尝试构建像博客网站现在所拥有的滚动推特更新或者不介意像自动更新自己的推特主页这样的东西。我假设Twitter主页使用某种轮询功能。

关于如何构建其中一个的任何帮助都很棒

1 个答案:

答案 0 :(得分:5)

这些网站通过使用javascript制作的XmlHttpRequests定期轮询服务器来实现此目的。这可以通过setInterval函数

实现

最短版本是这样的(jQuery,但库翻译很简单):

setInterval(function() {
  $.getJSON('/posts.json', function(posts) {
    // code to remove old posts
    // code to insert new posts
  });
}, 5000);

5000是函数调用之间的时间(以毫秒为单位)。

然后您的帖子控制器会返回最新的帖子:

class PostsController < ApplicationController
  @posts = Post.find(:all, :order => 'created_at desc')

  respond_to do |format|
    format.html
    format.json { render :json => @posts.to_json }
  end
end