Personalized URL -- route.rb.

Hello Friends,
I want to configure personalized url for e.g. - http://localhost:3000/xyz here xyz is a database value. Now for the same i have implemented the following syntax inside my route.rb file

map.url ‘/:name’, :controller => ‘controller_name’, :action => ‘action_name’

But now when ever i run my application the action_name.rhtml appears whereever i click.

So guys really confused any suggestion from your side?



Do you want that off of the root path or something like ?

These are generally referred to as permalinks.


Hey Robby
Thanks for reply i want just after the domain name

instead of

And the robbyrussell will be a dynamic value…

Though i tried the following code inside the route.rb

map.url ‘/:name’, :controller => ‘controller_name’, :action => ‘action_name’

It’s work but for ever page the above mentioned action is getting called :frowning:


Have you placed it at the end of your routes.rb file?

It's easier if you show up some real code.

That sounds like its working. "/:name", :controller => "people", :action => "show"
  map.connect ":controller/:action.:format"

will see a url like "http://localhost:3000/anything"
and match it to the first route.
it will do the same for "http://localhost:3000/admin"

and hence always try and grab PeopleController#show

what you'd need to do is declare any important routes before that


  map.admin "/admin", :controller => "admin" "/:name", :controller => "people", :action => "show"
  map.connect ":controller/:action.:format"

this will make sure that "http://localhost:3000/admin" goes to the
right place.

My suggestion is if you're just starting out in rails,
keep it simple.


looks just as nice,
but is much simpler for a newbie.


Make sure you put this near the bottom of routes.rb.

map.person '/:name', :controller => 'people', :action => 'show'

Then in your view...

<%= link_to "Person Name", person_path("jimmy") %>

I don't think this is the ideal situation, but it'll do what you're
looking to have done. Really you should be using a named resource, and
set the "to_param" value in your person model to "name".

Hey thanks guys its working
i put the line @ the bottom…
Abhishek Shukla