Non-conventional actions and Atom feeds

I would like to provide Atom feeds in response to different actions.
I am aware that eg map.resources :posts helps me generate a feed
as a request for /posts.:format, but as I am getting into problems,
I see that I do not have the full understanding of what is going on.

I would like to do the same (but with a different dataset) for other
actions such as /posts/today or /posts/yesterday.

For instance, I have created app/views/posts/today.atom.builder file,

and in today.html.erb view I put
<%= auto_discovery_link_tag :atom, url_for(:action => 'today') %>

but clicking on the feed icon in Firefox only reloads the html page,
while explicitly requesting posts/today.atom produces:

ActionController::RoutingError (No route matches "/pots/today.atom"
with {:method=>:get})

What am I missing? Should I specify a new named route?


Do your actions define a response for atom requests in a respond_to
block ?


Currently it looks like:

  def today
    # load @posts...
    respond_to do |format|


Have you included your additional methods in your routes.rb, as in

  map.resources :posts, :collection => { :today => :get, :yesterday
=> :get }

? That should do the trick.

Also, I think the url_for you're using in auto_discovery_link_tag
lacks the format parameter; I think you can use





Thank you, the :collections parameter to map.resources is
what it takes. And it gives the formatted_* helpers.
Now the API docs are more clear :).