basic routing question

Sorry for such a basic question... total neophyte here!

I've put a new action "foobar" in my "things" actioncontroller. I want to link to this action in a linkto function... so: <% link_to "go to foobar", :action=>"foobar" %>. The html href produced is /things/foobar

Problem is the default routing interprets this as being routed to the "things" controller, "show" action, with "id" = "foobar".

How can I override this default interpretation and create a link to my custom "foobar" action?

thanks in advance for any assistance you can provide

Hi Les, I had this problem recently and I think I can help. It turns out that you have to map every new controller that you create in your config/routes.rb. Open it and include a line like this in the map block but above all other lines (order matters here):

map.resources :model_name_in_plural, :collection => {:action1 =>:get, :action2 => :get, ..., :actionN => :get}

example:

map.resources :clients, :collection => {:search => :get, :upgrade => :get}

I hope I has of help.

Thanks for the suggestion, Abel,

that wasn't quite the solution that worked for me, since I was just adding an action to an existing controller, vs. adding a new controller.

The solution turned out to be achieved by playing with the sequence of the mappings in routes.rb. I understand why the order is important but not why it solved this particular problem.

Abel, your suggestion led me to the right solultion, thanks

Les