Routing Questions

I have two questions on routing if any one has some spare time.

  1. Is there any way to declare a resource and have its routes use something other than :id? so that it ends up that /users/:user_name maps to the show action

  2. I noticed when I define a custom rout like

   match '/passwords/:user_name/edit'

   I don't get any named paths that show up when I run rake routes

   Is there any way to say something like

  match '/passwords/:user_name/edit', :name => :change_password

  so that I can use it like

  link_to change_password_path @user

Thank you every one hope all is well

I have two questions on routing if any one has some spare time.

  1. Is there any way to declare a resource and have its routes use something other than :id? so that it ends up that /users/:user_name maps to the show action

Not that I know of (certainly not mentioned in the Guides or docs.

  1. I noticed when I define a custom rout like

match ‘/passwords/:user_name/edit’

I don’t get any named paths that show up when I run rake routes

Is there any way to say something like

match ‘/passwords/:user_name/edit’, :name => :change_password

Yes, just use :as instead of :name

match ‘/passwords/:user_name/edit’ => ‘password#edit’, :as => :change_password

This gives you:

rake routes change_password /passwords/:user_name/edit(.:format) {:controller=>“password”, :action=>“edit”}

Then you can use:

change_password_path(@user) # assuming @user.user_name exists

Thank you