Customized Route Resource Helper URLs (to not use 'id')

Say I have a "Member" ActiveRecord object with a typical integer id attribute, and a string 'username' attribute.

If I generate routes for members using map.resources :members, then the output from the edit helper is: edit_member_path(@member) => "members/23/edit"

My goal is that I really want: edit_member_path(@member) => "members/billybob/edit"

Where instead of using .id it uses .username so that the links generated by all of the different helper methods are prettier and memorable.

Is this possible via some kind of option? Can I simply replace these helper methods with new implementations? I don't even know where these implementations are or what they really look like.


You need to change in routes.rb file for getting name instead of id..

Change what exactly? The resources method does not have options to customize the behavior of the helper methods.


This article may be helpful.

Anthony Crumley

Aha! That was even better than I hoped for. to_param is exactly what I needed. Thanks

what useful it has