On 19 June, 11:48, lecielbleu <[email protected]> wrote:
> Hi , do we have to use controller name in url , can we change this?
> For example i have a controller named => category
> when user click to link "Computer Components"
> can rails writehttp://domain/computer-componentsinstead 
> ofhttp://domain/categories/53

Hi,

This is possible by creating a custom route in routes.rb. You would
need to do the following:

map.connect '/:category_name', :controller => 'categories', :action =>
'show'

However, you need to be careful where this sits in your routes.rb as
it will catch every URL if it is too high in the file.  In your
categories controller, the show action would need the following:

@category = Category.find_by_name(params[:category_name]

I should point out that this is not good practice and if you intend to
have a significant number of categories, the id should be used.  The
following link shows how you can get 'friendly' urls whilst still
using standard Rails routing.

http://www.jroller.com/obie/entry/seo_optimization_of_urls_in

Regards

Robin
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to