RailsでRSSフィードを生成

昨日のエントリー、RailsでAtomフィードを生成 | EasyRamble のRSSフィード版(RSS2.0)です。Atomフィードと同様、簡単にRSSフィードを生成できます。”user has_many posts” という関連を持つモデルの場合で、特定ユーザーの投稿一覧のRSSフィードを生成します。

— 環境 —
Rails 4.1

スポンサーリンク

UsersController の posts メソッドで rss フォーマットを追加

コントローラーのメソッドで、atom フォーマットの下に、さらに rss フォーマットを追加しました。

app/controllers/users_controller.rb

ルーティングは昨日の例と同様に以下。

config/routes.rb

RSSフィード用のビューを作成

ビューファイルの拡張子を .rss.builder にします。

views/users/posts.rss.builder

pubDate は、post.created_at をユーザーのタイムゾーンに変換し、さらに rfc822 のフォーマットにして出力するようにしています。タイムゾーンについては以下あたりの関連。

Rails でのタイムゾーン管理の方針 | EasyRamble

以上で /users/:id/posts.rss のパスで、特定ユーザーの投稿一覧のRSSフィードを表示できました。

Atom と RSS2.0 のどちらを使うべきか

AtomフィードもRSSフィードも、Rails の builder を使うと簡単に生成できることが分かりましたが、さてどっちを使うべきか…。XMLフォーマットの仕様が違うだけで、どちらを使ってフィードを提供しても良さそうなのですよね。

ということで RailsGuides を読みましたところ、Action View Overview — Ruby on Rails Guides に “Below is a full-length RSS example actually used on Basecamp” としてRSS2.0フィードを生成する例が書いてありました。

また、Yahoo!ニュース – RSS や購読している Signal vs. Noise by Basecamp — Business, Design, Programming and the Web もRSS2.0でフィードを提供しているので、とりあえずRSS2.0版のフィードを生成して使おうと思います。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!