RailsでRSSを一番簡単に発行するには
僕がさがした中で最も簡単だったのは、Rails組み込みのrss builderを使うやり方。
コントローラーの書き方
必要なデータを用意した後、respond_toで、rssの拡張子に対応することを設定します。
def feed @posts = Post.order(created_at: :desc).limit(50) respond_to do |format| format.rss end end
ビューの書き方
xmlヘルパーを使って定義します。
ファイルの拡張子は、.erbではなく、.rss.builderとしなければなりません。
xml.instruct! :xml, :version => "1.0" xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do xml.channel do xml.title 'ここにサイトのタイトル' xml.description 'ここにサイトの説明(必要ならば)' xml.link 'http://example.com' @posts.each do |p| xml.item do xml.title p.title xml.description do xml.cdata! 'ほげほげ' end xml.pubDate p.created_at xml.guid "http://example.com/view/#{p.id}" xml.link "http://example.com/view/#{p.id}" end end end end
これで無事にRSSが発行できました。
今回のルーティングなら、http://example.com/feed.rssにてアクセスできます。
めでたしめでたし。