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.
On Jul 6, 4:47 pm, Les N. [email protected]
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