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/erik@mail.com DELETE /users/erik@mail.com

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