我對Rails 3很新,我正在嘗試製作一個RSS/Atom feed。我知道auto_discovery_link_tag,但相關的控制器/操作應該是什麼樣子?如何在Rails 3中製作RSS/Atom feed?
謝謝!
我對Rails 3很新,我正在嘗試製作一個RSS/Atom feed。我知道auto_discovery_link_tag,但相關的控制器/操作應該是什麼樣子?如何在Rails 3中製作RSS/Atom feed?
謝謝!
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
這個文件應該匹配控制器的名稱。參照下面的:
的意見/職位/ 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
爲您做了這項工作嗎? – thatmiddleway 2010-10-17 01:21:00
感謝馬特,這是有道理的,我以前從來沒有聽說過.builder文件。對於那些想知道Atom的人,我只是搜索了「rails atom.builder」,並得到了一個非常相似的代碼片段,但是對於atom。 (http://www.papodenerd.net/creating-atom-feeds-with-ruby-on-rails/) – simonista 2010-10-17 05:45:48
儘管我希望你選擇了Atom over RSS,但我建議你只使用其中的一種。它們代表了相同的信息和大部分現代的feed解析庫支持,所以它們很好用:)請查看以下最佳實踐:http://blog.superfeedr.com/Feeds/RSS/Atom/Best%20Practice/ feed-publishing-best-practices/ – 2010-10-17 09:06:33
朱利安,我同意人們應該選擇一個並與之合作。我只是想爲Atom提供相同的信息,以便在閱讀本頁後有人可以輕鬆選擇其中一個。 – simonista 2010-10-18 14:23:38