9.3. Adding an RSS and Atom Feed
Responding to a request for a given resource in XML format is usually done without the need for a Builder template. For example, in the ArticlesController you had:
respond_to do |format| format.html # index.html.erb format.xml { render :xml => @articles } end
The highlighted line will invoke the to_xml method and render the collection of Article objects in the default XML representation. In this case, @articles will contain only one record because you set the pagination to one article per page. Reaching for /articles.xml will provide the following (depending on your content, of course):
<?xml version="1.0" encoding="UTF-8"?> <articles type="array"> <article> <body>Hi there! If you don't know what %{color:red}Rails% is, you can read more about it on the "official website":http://rubyonrails.org and then buy Antonio Cangiano's book. It's *highly recommended*. ;-) By the way, did you know that Ruby on Rails(TM) is a trademark of "David Heinemeier Hansson":http://loudthinking.com?</book> <created-at type="datetime">2008-07-16T18:56:33-04:00</created-at> <id type="integer">4</id> <published type="boolean">true</published> <published-at type="datetime">2008-07-19T23:52:00-04:00</published-at> <title>Oh hi!</title> <updated-at type="datetime">2008-07-17T12:21:48-04:00</updated-at> </article> </articles>
A great example of when this approach is not sufficient is the publication of an RSS (from version 2.0 this stands for Really Simple Syndication) ...
Get Ruby on Rails® for Microsoft Developers now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.