REST with :name as unique identifier, rather than :id

Hi all,

Is it possible to implement REST with :name as a unique identifier of a model, instead of the :id? Having readable (literally) URLs is important to my application as many URLs are announced at conferences or read out over the phone.

For example, I'd like to do:

/branches /branches/bristol /branches/bristol;edit

Cheers,

Tom

In your controller, you just need to replace:

Branch.find(params[:id])

with:

Branch.find_by_name(params[:id])

and then possibly add to your Branch model:

class Branch    def to_param      self.name    end end

so URL generation will do the right thing if you have:

edit_branch_url(@branch) or edit_branch_url(:id => @branch)

-Rob

Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com

Thanks Rob,

That's amazingly simple... Any other gotchas I should be aware of?

Cheers,

Tom