Custom URL routing based on usernames.

Hi all,

I have an application which has a number of users, each with their own usernames. I am able to setup URLrouting where I can do something like

and that to call a chosen controller, action and passing charlie63 as the id. So that's fine.

This is probably a stupid question, but to prevent problems, do I simply have to have a list of unavailable usernames and not allow people to create accounts with those as usernames? In other words, if I have a controller named, checkout, I need to not allow anyone to create a user name checkout, because when she tried to access her account through her URL 应用宝官网-全网最新最热手机应用游戏下载 it will actually go to controller: checkout and action: index?

If this is so, do I just need to manually maintain a list of invalid user names and check against those? Or can I call something in Rails to help me to look for existing controllers? Although, I guess I have to be careful because someone may create an account, use that for a while, and later on I may come along and create a controller with the same username.

Any help in getting something like this going, pointers, would be greatly appreciated.

Cheers, Diego

OK, think I've got it. I just need to place the routing rules for the username before the standard controller/action/id one which is there by default with a Rails app. So, even if I have a username with the same name as a controller, it will be found if it exists. Otherwise the controller's routing rule will be evaluated.

Diego wrote:

OK, think I've got it. I just need to place the routing rules for the username before the standard controller/action/id one which is there by default with a Rails app. So, even if I have a username with the same name as a controller, it will be found if it exists. Otherwise the controller's routing rule will be evaluated.

You can take it a step further and use our resource hacks plugin for Rails. :slight_smile:

One of our developers recently blogged about it.

* http://blog.imperialdune.com/2007/2/13/pretty-urls-with-restful-rails

Cheers,

-Robby

Thanks Robby, I'll check it out.