`
anke1460
  • 浏览: 44148 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby/Rails RSS

阅读更多
用google搜索ruby制作rss的办法,搜了很久都找不到,这些年头,rss已经是很hot的字眼了,所以搜到了一堆提供rss的ruby网站,FT,我要找的是ruby怎么制作rss并且在rails中输出啊。后来终于知道怎么编写了,因此想把代码留下来造福大家,但是估计大家是不可能通过google搜索到这篇文章的了,看看有无有缘人能忽忽来到这里。

首先,我要说的是另一个解决方案,因为我想typo这个著名的blog程序里面应该会有rss输出的代码,于是下来看看。一看,typo果然聪明,因为rss本质是一个xml,所以typo就在controller里把需要的内容load出来,然后通过.rxml里面的xmlbuilder来自己一个一个写出来。呃⋯⋯这样太偏门了吧。

接着下来就是我要介绍的方法。如果你还在网上寻找ruby处理rss的lib的话,看到这篇文章你就不用再去找了,因为Ruby本身就内置了rss的解释和输出的支持,并且是同时支持0.9x/1.0/2.0。

废话少来,直接上代码吧:

    def feed
    articles = Article.find :all,rder => 'post_date DESC', :limit => 10
    feed = RSS::Maker.make("2.0") do |maker|
      maker.channel.title = "Gang of Technology"
      maker.channel.description = "Gang of Technology site"
      maker.channel.link = "http://up-u.com"

      maker.items.do_sort = true

      articles.each do |article|
        item = maker.items.new_item
        item.link = "http://up-u.com/archives/#{article.id}"
        item.title = article.title
        item.date = article.post_date
        item.description = Maruku.new(article.content).to_html
      end
    end
    send_data feed.to_s, :type => "application/rss+xml", :disposition => 'inline'
    end这是本网站的rss输出的真实代码,如果你熟悉rails的话,你一定能看得懂。不过我还是来稍稍点评一下,跟rss没什么关系的我就不说了:

1. 首先是得`require ‘rss/maker’`一下。
2. `make(”2.0″)`的2.0是你要输出的rss的版本,支持的值有0.9、1.0、2.0。至于为什么用2.0,因为2.0是0.9的新版本,而其实1.0是另一家的,这个你得好好去搜一下它们的历史。
3. `maker.channel`的title、description、link是三个必填的值,但是其实按照rss规范,description不是必须的,但是这里不填的话,maker会报错。
4. `maker.items.do_sort = true`的意思是按照item的时间排一下序,不过其实我select出来的时候已经排好序了,其实要不要没有关系。
5. 接下来就是item的生成了,调用`item = maker.items.new_item`
6. rss规范里面item有好多个值,不过我这里只选了四个,其实只有link和title是必须的,date最好也输出,不然rss reader会把所有文章都当成是today,description我把全文输出了,因为我就是喜欢用rss reader看全文的人。
7. 跟着就是rails的内容了,怎么把它发送出去呢,`send_data`就行了,这里需要注意的是send_data其实是接受string,但实际上你不传string也行,但是有不会想java那样自动调用toString一把,所以我们得显式转,不然会报错,我觉得是rails的设计问题,另外就是得指定mine type,至于`:disposition => ‘inline’`,因为send_data的默认就是会强制浏览器下载,这个得改一下。
8. Maruku是什么?这个跟本次主题没有关系啦,想知道就看[这里](http://rubylib.cn/maruku-27)吧。

分享到:
评论

相关推荐

    Build.Your.Own.Ruby.on.Rails.Web.Applications.Feb.2007.pdf

    《构建你自己的Ruby on Rails Web应用》一书由Patrick Lenz撰写,于2007年出版,由SitePoint Pty Ltd.发行。本书是针对希望使用Ruby on Rails框架开发Web应用的初学者和中级开发者的一份详尽指南。以下是根据书籍...

    Ruby-Publify一个构建在Rails之上的自我托管We发布平台

    **Ruby-Publify:基于Rails的自我托管Web发布平台** Ruby-Publify是一个开源的、基于Ruby on Rails的内容管理系统(CMS),它允许用户创建和管理自己的博客或网站,无需依赖第三方服务。作为自我托管的解决方案,...

    MyReader:RSS格式的新闻提要阅读器。 基于Ruby on Rails的Google阅读器的“替换”

    基于Ruby on Rails的Google阅读器的“替换”。 由CIn-UFPE的2014年专业硕士班的一群学生发起的“发展项目”,重点是信息系统。 主题:软件工程(MPI906)教授:VINICIUS CARDOSO GARCIA(vcg) 开发人员(学生)...

    ruby+flex实现天气预报

    总结,这个案例展示了Ruby on Rails和Flex如何协同工作,利用RSS获取并展示天气信息,同时体现了RIA开发在提升用户体验和应用功能方面的强大能力。通过深入理解和实践这些技术,开发者可以构建出更强大、更吸引人的...

    wix-rails-rss-feed-app

    RSS Feed应用程序-(Ruby on Rails) 关于 Wix应用程序RSS Feed,演示了如何构建可用于生产环境的应用程序。 使用Ruby on Rails服务器和Wix客户端库从头开始使用Client&Server。 单击此处获取实时示例。 介绍 该...

    rails制作rss feed代码

    在Rails框架中创建RSS Feed是一项常见的任务,它允许网站向订阅者提供更新内容的通知。本文将详细介绍两种在Rails中制作RSS Feed的方法。 方法A主要涉及手动构建RSS XML格式并在控制器中输出。首先,在`Post_...

    笨方法学ruby-中文版

    9. **XML和Atom feed**:`atom.xml`和`sitemap.xml`可能是书中的练习或示例,涉及XML数据格式和RSS/Atom feeds的创建,这对于理解数据交换和订阅机制有帮助。 10. **练习和项目**:如`ex35`、`ex36`等文件名所示,...

    应用Rails进行REST开发

    ### 应用Rails进行REST开发 #### 1.1 什么是REST? REST(Representational State Transfer),这是一种由Roy Fielding在他的博士论文中提出的架构风格。REST的核心思想是通过标准HTTP协议中的GET、POST、PUT、...

    podcast:用 Ruby on Rails 编写的播客发布平台

    这是一个发布播客的应用程序。 它比 WP 播客插件更好,因为它在后台使用 ffmpeg 将您的播客转换为不同的音频格式。 此外,它是用 RoR 编写...RSS/iTunes 提要 (!) 检查音频的 mime 类型有什么问题 不太重要但仍要尽快

    rails_rss_aggregator

    这是一个基于 Rails 的 RSS 聚合器。 它最初是两个第一批( 和 )的最终项目。 尽管如此,我们还是想继续在这个项目上工作,并最终部署和维护它。 我们希望它聚合来自内罗毕科技生态系统最佳博客的帖子。贡献我们...

    tagteam-dev_html_javascript_ruby_css_

    Rails框架是Ruby的一个流行选择,它提供了MVC(模型-视图-控制器)架构,使得开发高效且结构清晰。例如,使用ActiveRecord处理数据库操作,通过ActionController处理HTTP请求,并用ERB(Embedded Ruby)模板生成HTML...

    Addison Wesley The Ruby Way 2Nd Edition Oct 2006.pdf(英文版)

    12. **图像文件、PDF、YAML、XML、RSS和Atom的处理**:讨论了如何处理各种格式的数据文件。 13. **测试、调试、性能分析与打包**:提供了测试、调试和优化Ruby程序的方法,以及如何将其打包发布。 14. **网络编程...

    Bash on Rails-开源

    Bash on Rails是用Ruby on Rails框架编写的报价数据库引擎(例如http://bash.org/或http://bash.org.ru/)。 支持具有不同特权的多个主持人,编辑报价,按等级对报价进行排序,报价搜索和RSS feed。

    web开发系列图书.pdf

    本系列图书详细介绍了多种Web开发技术,包括Ajax、REST、Rails、RSS/Atom以及JavaScript和CSS,这些都是构建现代Web应用程序不可或缺的元素。 1. **Ajax(异步JavaScript和XML)**: - Ajax是一种技术栈,它允许...

    filter-app:Rails应用程序-支持http:hrfilter.de和http:fahrrad-filter.de的新闻聚合器

    这是一个用于运行(德语)新闻聚合器网站的Ruby-on-Rails应用程序。 今天,它具有以下功能: (德国人力资源/个人/招聘新闻) (德语/英文自行车新闻) 推理 我想关注这两个方面的消息,但是却对RSS感到困惑,因为...

    rails_6_rss_reader

    Ruby版本:2.6.6 Node.js版本14.16.0 正在运行的yarn dev将通过webpack-dashboard启动webpack-dev-server 系统依赖 配置 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) ...

    geonews:将俄罗斯大众媒体的新闻映射到地图

    GeoNews 是一个使用 Ruby on Rails 3 开发的项目,用于在地图服务上映射来自俄罗斯大众媒体的新闻。 描述 我们的项目将从 RSS 提要中获取新闻,使用带有地名数据库的词形还原定义位置,并在地图上放置一条消息。 ...

Global site tag (gtag.js) - Google Analytics