【发布时间】:2011-04-26 11:01:46
【问题描述】:
我是 Rails 3 的新手,我正在尝试制作一个 RSS/Atom 提要。我知道auto_discovery_link_tag,但相关的控制器/动作应该是什么样子?
谢谢!
【问题讨论】:
标签: ruby-on-rails rss ruby-on-rails-3
我是 Rails 3 的新手,我正在尝试制作一个 RSS/Atom 提要。我知道auto_discovery_link_tag,但相关的控制器/动作应该是什么样子?
谢谢!
【问题讨论】:
标签: ruby-on-rails rss ruby-on-rails-3
Auto_discovery_link_tag 是一个好的开始。快速谷歌搜索,我在How to Create an RSS feed in Rails 上找到了博客文章。让我告诉你你的关联控制器/动作应该是什么样子:
控制器/posts_controller.rb
def feed
@posts = Post.all(:select => "title, author, id, content, posted_at", :order => "posted_at DESC", :limit => 20)
respond_to do |format|
format.html
format.rss { render :layout => false } #index.rss.builder
end
end
此文件的名称应与控制器匹配。见下文:
views/posts/feed.rss.builder
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0" do
xml.channel do
xml.title "Your Blog Title"
xml.description "A blog about software and chocolate"
xml.link posts_url
for post in @posts
xml.item do
xml.title post.title
xml.description post.content
xml.pubDate post.posted_at.to_s(:rfc822)
xml.link post_url(post)
xml.guid post_url(post)
end
end
end
end
这就是所有 Railsy 魔法发生的地方。在这里,RSS 提要 XML 被生成并返回给 HTTP。
【讨论】:
使用 auto_discovery_link_tag:
在控制器中:
respond_to do |format|
format.html
format.atom {render action: 'index', layout: false}
end
【讨论】: