&tag(Rails3/RSSフィードの生成);
*目次 [#geb2700e]
#contents
*参考情報 [#sa7fe353]
-[[Ruby on Railsで、RSSフィード 一言多いプログラマーの独り言:http://programmer-jobs.blogspot.jp/2013/05/ruby-on-railsrss.html]]
-[[railsでrssフィードを作る - うんたらかんたらRuby - Rubyist:http://rubyist.g.hatena.ne.jp/rochefort/20090120]]
-[[How do I make an RSS/Atom feed in Rails 3? - Stack Overflow:http://stackoverflow.com/questions/3951235/how-do-i-make-an-rss-atom-feed-in-rails-3]]

*概要 [#xc234919]
-独自にrssを生成しなくても組み込みで作る方法がある。
-コントローラーで、rssレスポンスを返し、viewでxxx.rss.builderを使う。
-URLは、xxx.rss になる。


*コントローラー [#m9478eb5]
-controllers/posts_controller.rb
#pre{{
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
}}

*ビュー [#i04c0ae4]
-views/posts/feed.rss.builder
#pre{{
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
}}
-URL:は例えば、http://localhost:3000/posts/feeds.rss のようになる。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS