URL aliasing in RoR

Hi all

I want to implement url aliasing on my site...say suppose my url is

domain/blog/1 instead of that i want domain/blog/title-of-that-blog Is
there any method how i can remove Id and put the title instead

Thanks a lot

Dhaval Parikh

Dhaval Parikh wrote:

Hi all

I want to implement url aliasing on my site...say suppose my url is

domain/blog/1 instead of that i want domain/blog/title-of-that-blog Is
there any method how i can remove Id and put the title instead

Thanks a lot

Dhaval Parikh

You will have to create a slug or a permalink column in your e.g.
Article model, make sure it is unique, then you have a route like
#routes.rb
map.article 'blog/:permalink' , :controller=>'article', :action=>'show'
#article_controller.rb
def show
  @article = Article.find_by_permalink(params[:permalink])
  render :template => 'not_found', :status => 404 unless @article
end

but in that case i need to route for each and every controller and its
methods..which i dont want...

I think you can do something like

map.resources
':controller/:action/:permalink' , :controller=>':controller', :action=>':action',

and optionally maybe even :id => :permalink. I don't know about if and
where you should put the quotes, if any, though.