O'Reilly logo

Ruby on Rails® for Microsoft Developers by Antonio Cangiano

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 &quot;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) ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required