RailsでAtomフィードを生成

Rails で特定のユーザーが投稿したポスト一覧の Atom フィードを生成します。”user has_many posts” という関連を持つモデルの場合です。Rails の Builder を使って、あっという間に Atom フィードを生成できました。

— 環境 —
Rails 4.1

【追記 2014/11/14】
users#post は複数形のほうが良いと考えなおしたので、users#posts に変更しました。

スポンサーリンク

ルーティング設定

まず、ルーティング確認。

config/routes.rb

このルーティングにより /users/:id/posts のパスで、特定ユーザーの投稿一覧ページにアクセスできる前提とします。

UsersController で respond_to でフォーマット設定

UsersController の posts メソッドで、respond_to メソッドを用いて、レンダリングを行うフォーマットを指定します。

app/controllers/users_controller.rb

respond_to メソッドで、html 及び atom のフォーマットを指定した例です。これにより、ビューで posts.html.erb と posts.atom.erb の両方を利用できます。

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

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

views/users/posts.atom.builder

これで、/users/:id/posts.atom のパスで Atom フィードを表示できます。Rails 使うと何事も簡単に実現できて、ますます Rails が好きになっちゃいますね!

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

Leave Your Message!