REST and extra actions


I'm trying to implement some charts in my REST application. But I
can't seem to use an extra action like "chart" in my controller.
Becouse of the rest approach, it sees the action name as an id.

Does anyone know how to overcome this? So that I can visit the charts
page of a sertain resource like /resource/charts ?

I know I could create a new controller and not adding it to the
resources in the routes file, but I would like to have the carts in
the resource controller, becouse in my opinion, the carts view belongs
to the resource.

Thank you in advance.

The first option is to make a completely new controller for charts. The index action would list all available charts and the show action lists the specific chart. That is the most RESTful approach

Another option would be to modify the show action so that it shows the chart.

/foo/1.png => displays the chart

Finally, if you absolutely must, you can use a :member action

map.resource :foos, :member => {:chart => :get}


or map.resource :foos, :collection => {:charts => :get}


A “collection” is like a list view - dealing with multiple objects
A “member” is for dealing with a specific object.