Вы можете использовать «универсальный» маршрут в конце файла маршрутов:
map.connect ':username', :controller => 'profiles', :action => 'show' (this is for Rails 2.3)
И в контроллере профилей метод show проверяет, есть ли пользователь с таким именем,если он принадлежит текущему профилю
def show
if User.find_by_username(params[:username])
if @current_user == User.find_by_username(params[:username])
# @profile = @current_user.profile
# render projects#show view
else
# flash error message, because the current user tries to access other users profile (in case your app doesn't allow it)
else
# render page not found error
end
end
У меня была похожая ситуация для модели проектов из проектов / id => / имя_проекта.Это немного проще в вашем случае, потому что в БД у вас есть уникальные имена пользователей.Ах, и никаких дополнительных драгоценных камней не участвуют.