no route matches ..... for form_remote_tag

I get an error:

No route matches {:controller => :controller, :action=>"add_groups"}

when loading a form under "users" containing:

<% form_remote_tag :url => { :controller => :users, :action =>
:add_groups } do %>
  ....
<% end %>

I do have an "add_groups" method in UsersController. I have not messed
with routes.rb, just a standard mapping automatically added by scaffold:

map.resources :users

The form is already in the "users" folder so :controller => should be
redundant, tried with and without it and no matter what always get "no
route matches".

Any ideas?

A route to :add_groups isn't provided by the map.resources :users
entry, you have to add a custom route for that action.

http://api.rubyonrails.org/classes/ActionController/Resources.html

You can see what routes you have available by running `rake routes`.

Thanks Greg. I've added the following to my routes.rb:

map.add_groups '/users/add_groups/:id', :controller => 'users', :action
=> 'add_groups'

And changed url in form_remote_tag to:

<% form_remote_tag :update => 'divgrouptable', :url =>
add_groups_path(@user) do %>
...

and got it to work.
However, I cannot say I understand why I'd have to do this. I don't
really want to map the add_groups method to any url. In my original
example I was specifying the method name and the controller name in the
url:

<% form_remote_tag :url => { :controller => :users, :action =>
:add_groups } do %>

which should tell rails everything it needs to know to invoke the right
method in the right controller, routing should not have anything to do
with that. I understand that it obviously does but I don't understand
why.

Greg Donald wrote: