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?
Thanks
Abhi
Abhi,
Do you want that off of the root path or something like
http://domain.com/people/robbyrussell ?
These are generally referred to as permalinks.
Robby
Hey Robby
Thanks for reply i want just after the domain name
– http://domain.com/robbyrussell
instead of
http://domain.com/people/robbyrussell
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
Thanks
Abhishek
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.
map.name "/: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
eg.
map.admin "/admin", :controller => "admin"
map.name "/: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.
http://localhost:3000/people/Abishek
looks just as nice,
but is much simpler for a newbie.
Enjoy.
Dave_S
(Dave S)
February 18, 2009, 12:11pm
6
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…
Regards
Abhishek Shukla