Ruby on rails 在Rails站点上显示Twitter提要(带有历史记录)的最佳方式

Ruby on rails 在Rails站点上显示Twitter提要(带有历史记录)的最佳方式,ruby-on-rails,ruby,twitter,Ruby On Rails,Ruby,Twitter,在Rails站点上,我想显示一个特定的Twitter提要,并对其进行分页,以便访问者可以查看以前的推文(根据需要可以追溯到最早) 我使用TwitterGem和Search方法实现了它,它有一个很好的分页方法,但是遇到了一个限制,Twitter只返回过去两周的法规。因此,在回顾了几页之后,它就不会再有了 我可以使用user_timeline方法,使用max_id,然后进行我自己的分页(将最后查看的项目的max_id传递回控制器以获取下一批) 或者,我可以有一个rake任务,它经常轮询Twitter

在Rails站点上,我想显示一个特定的Twitter提要,并对其进行分页,以便访问者可以查看以前的推文(根据需要可以追溯到最早)

我使用TwitterGem和Search方法实现了它,它有一个很好的分页方法,但是遇到了一个限制,Twitter只返回过去两周的法规。因此,在回顾了几页之后,它就不会再有了

我可以使用user_timeline方法,使用max_id,然后进行我自己的分页(将最后查看的项目的max_id传递回控制器以获取下一批)

或者,我可以有一个rake任务,它经常轮询Twitter提要(使用cron),并将tweet存储在DB中。该网站将从数据库提供这些服务,而不是查询Twitter

哪种方法是最好的或推荐的?我不喜欢将tweet存储在DB中,但这也解决了查询Twitter的延迟问题(尽管我可以使用片段缓存来克服这一问题,但我还不能让它与Ajax一起工作)


谢谢你的建议。

我想把推文存储在数据库中。
所以即使twitter离线,你也不会有长时间的加载问题。您只需依赖您的数据库,即可适当显示推文。

只有您的后台作业会失败,因为twitter不可用。但这并不是一个真正的问题。

我会将推文存储在数据库中。
所以即使twitter离线,你也不会有长时间的加载问题。您只需依赖您的数据库,即可适当显示推文。

只有您的后台作业会失败,因为twitter不可用。但这并不是一个真正的问题。

我在这里持相反的观点,出于一系列原因,将tweet存储在数据库中不是一个好主意

  • 你永远无法确定你得到了所有最近添加的tweet,因为所有这些tweet都可以快速连续添加。当然,您可以让cron作业更频繁地运行,但接下来我们将讨论下一个问题

  • 如果推文被删除,无论出于什么原因,你的应用程序仍然会缓存它们,这对我来说也是一个不错的做法,因为它们会因为某种原因被删除


  • 老实说,我不会让你的应用程序为tweets服务,而是在页面上安装一个“小部件”(jquery或类似的),一旦页面加载,它就会喜欢这些小部件,然后考虑在那里实现某种形式的分页。

    我在这里持相反的观点,出于一系列原因,将tweets存储在数据库中不是一个好主意

  • 你永远无法确定你得到了所有最近添加的tweet,因为所有这些tweet都可以快速连续添加。当然,您可以让cron作业更频繁地运行,但接下来我们将讨论下一个问题

  • 如果推文被删除,无论出于什么原因,你的应用程序仍然会缓存它们,这对我来说也是一个不错的做法,因为它们会因为某种原因被删除


  • 老实说,我不会让你的应用程序为tweets服务,而是在页面上有一个“小部件”(jquery或类似的),一旦页面加载,它就会喜欢这些小部件,然后在那里实现某种形式的分页。

    我们下载tweets并将其存储在本地数据库中。我最近写了一篇关于我们是如何做到这一点的博文:


    然后,您可以使用will_paginate处理您的分页并返回到您想要的位置。

    我们下载推文并将其存储在本地数据库中。我最近写了一篇关于我们是如何做到这一点的博文:


    然后,您可以使用will_paginate处理分页并返回到您想要的位置。

    我知道这是一篇老文章,但这种方法的问题是twitter的速率限制。如果你把它加载到服务器上,那么每小时150次的页面浏览量是难以置信的低,所以采用javascript方法可以让每个IP地址(站点访问者)点击150次Twitter的API。但是,对于每个可能使用相同类型小部件的站点,如果您在一个大型网络(如公司或大学)上,那么您有多个用户(如果不是数百个),所有用户都将计入相同的150个请求配额。不幸的是,没有完美/简单的解决方案。我知道这是一篇老文章,但这种方法的问题是twitter的费率限制。如果你把它加载到服务器上,那么每小时150次的页面浏览量是难以置信的低,所以采用javascript方法可以让每个IP地址(站点访问者)点击150次Twitter的API。但是,对于每个可能使用相同类型小部件的站点,如果您在一个大型网络(如公司或大学)上,那么您有多个用户(如果不是数百个),所有用户都将计入相同的150个请求配额。不幸的是,没有完美/简单的解决方案。