RSSフィードを配信する

Rails4

アンテナサイトというのは、RSSで取得した記事をRSSで配信するものらしい。
まとめサイトのおすすめ記事一覧にここRSSフィードを配信して貰えばアクセスアップが見込めそう。とういうことで実装してみた。

posts_controller.rb
  def index
    @posts = Post.order("created_at DESC").limit(20)

    respond_to do |format|
      format.rss { render :layout => false }
    end                                                                                                                                                       
  end 
app/views/posts/index.rss.builder
xml.instruct! :xml, :version => "1.0", :encoding => "UTF-8"
xml.rss("version"    => '2.0', 
        "xmlns:dc"   => "http://purl.org/dc/elements/1.1/",
        "xmlns:atom" => "http://www.w3.org/2005/Atom") do
  xml.channel do               
    xml.title 'ぺろぺろあんてな'  
    xml.description 'まとめサイトの記事を配信します。'
    xml.link root_url
    xml.language "ja-ja"                                                                                                                                      
    xml.ttl "40"
    xml.pubDate(Time.now.strftime("%a, %d %b %Y %H:%M:%S %Z"))

    @posts.each do |post|      
      xml.item do              
        xml.title post.name    
        xml.link post_url(post)
        xml.description post.content
        xml.guid post_url(post)
        xml.pubDate post.created_at 
        xml.author "prprantena"
      end
    end
  end
end 

ブラウザにRSSフィード配信しているサイトであると認識してもらうには、layoutに次のコードを埋め込む。

 <%= auto_discovery_link_tag( :rss, "/posts.rss" ) %>