Make routes with e-mail address

Hi

I have a RESTful controller that works when using a numeric ID. Now I
would like to accept user login names as ID and for some of the cases
this is an e-mail address. In short it boils down to routing the
request URL

GET /users/[email protected]
DELETE /users/[email protected]

to

:controller => :users, :action => :show
:controller => :users, :action => :delete

And so on. Does anyone know how to do this. Grateful for any insight
on this.

/Erik

There’s no reason why you couldn’t just pass those as the ids to the
url helpers, but you need to update your controller

user = User.find(params[:id])
to
user = User.find_by_email(params[:id])

Hi and thanks for the input. The problem was that I wanted to use .xml
as :format which was not possible without customized routes. I did
some reading and came up with a solution which I post if anyone else
has a similar problem:

map.connect “customers/:login.:format”,
:controller => “customers”,
:action => “show”,
:conditions => {:method => :get},
:login => /\b[\w.%-]+@[\w.%-]+.[a-zA-Z]{2,4}/

Kindest regards

Erik

On 18 Mar, 23:48, “[email protected]” <ESPN3.DL-