I like all the default routes that are generated by Rail\'s map.resources. But, there are cases where I would like to use a non-numeric identifier in my routes.
You can change the default of using the ID in URLs by overriding to_param in your model. e.g.
class User < ActiveRecord::Base
def to_param
login
end
end
user_articles_path(@user) => "/users/:login/articles"
The only other change you'll need to make is to find users by login rather than by ID in your controllers.