在 Rails 中创建动态 RSS 视图需配置路由、控制器获取数据并使用 builder 模板生成 XML,通过 rss.rss.builder 文件定义频道信息与文章条目,结合 auto_discovery_link_tag 实现订阅自动发现,从而提供标准 RSS 订阅源。
RSS(Really Simple Syndication)是一种用于发布经常更新内容的格式,比如博客文章、新闻条目或播客。在 Ruby on Rails 应用中生成 RSS,可以让用户通过 RSS 阅读器订阅你的内容更新。Rails 借助 Action View 的 .rss 模板和 Builder 支持,能轻松创建动态 RSS 视图。
要在 Rails 应用中为资源(如博客文章)生成 RSS 订阅源,你可以按照以下步骤操作:
首先,在 config/routes.rb 中为 RSS 订阅添加路由:
get 'articles/rss', to: 'articles#rss'这会将 /articles/rss 映射到 ArticlesController 的 rss 动作。
在 ArticlesController 中定义 rss 动作,获取需要发布的文章数据:
def rss这个动作获取最近发布的 20 篇文章,并按时间倒序排列。
Rails 使用 Builder 模板引擎来生成 XML 格式的 RSS。在 app/views/articles/ 目录下创建名为 rss.rss.builder 的文件:
xml.instruct! :xml, version: "1.0"说明:
为了让浏览器或阅读器自动发现 RSS 源,可以在布局文件(如 application.html.erb)的
中加入:这样用户使用 RSS 阅读器访问网站时,能自动检测到订阅源。
基本上就这些。通过几行代码,Rails 就能为你生成标准兼容的 RSS 订阅源,方便用户追踪内容更新。整个过程不复杂但容易忽略细节,比如日期格式或 GUID 设置。只要模板写对,就能稳定输出动态内容。