Help with RESTful routes

Hi,

I have just added a new functions to my RESTful user model
forgot_password that I believe I should now be accessing in the
following url http://localhost:3000/users;forgot_password instead of
/users/forgot_password is this correct?

Secondly reading the agile rails book it is telling me I need to add
somthing to my routes to define this, such as
map.resources :users, :collection => {:forgot_password => :get}
what is the difference between :collection and :member and which one
should I use?

Thanks,
Jon

John,

:collection applies to collections of your resource. See the standard
index action:

/users

:member applies to one instance of your resource. See the standard
show action:

/users/1

If your custom action will return an array of your resource
use :collection if it return one instance of your resource
use :member.

Also in case your action creates a new instance of your resource
use :new

Also make sure you use the correct method in your custom actions.
Keep REST verbs in mind and use the proper one for the task.

Example:

map.resources :users :member => { :disable => :put }

creates:

/users/:id;disable

Here we create routes for disabling a member (instance) of User and
are updating it’s state to be disabled. You may want to do something
like this in case other related actions should be taken when a user
gets disabled. If only the user resource’s state changes you can use
the standard routing to update (PUT) it’s new values.

@Robert:

Thanks for taking the time to answer that. That helped me out quite a
bit.

cheers, thats explained it pretty well