# URL aliasing in RoR

**URL:** <https://www.ruby-forum.com/t/url-aliasing-in-ror/127567>\
**Category:** Rails\
**Created:** [January 30, 2008, 1:11pm UTC](https://www.ruby-forum.com/t/url-aliasing-in-ror/127567 "2008-01-30T13:11:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dhaval\_parikh33](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@dhaval\_parikh33](https://www.ruby-forum.com/u/dhaval_parikh33)\
**Post date:** [January 30, 2008, 1:11pm UTC](https://www.ruby-forum.com/t/url-aliasing-in-ror/127567/1 "2008-01-30T13:11:31Z")

</div>

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 P.

---

<div class="post-metadata">

**Author:** ![dhaval\_parikh33](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@dhaval\_parikh33](https://www.ruby-forum.com/u/dhaval_parikh33)\
**Post date:** [January 30, 2008, 1:26pm UTC](https://www.ruby-forum.com/t/url-aliasing-in-ror/127567/2 "2008-01-30T13:26:06Z")

</div>

Dhaval P. 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 P.

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

---

<div class="post-metadata">

**Author:** ![dhaval\_parikh33](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@dhaval\_parikh33](https://www.ruby-forum.com/u/dhaval_parikh33)\
**Post date:** [January 30, 2008, 1:45pm UTC](https://www.ruby-forum.com/t/url-aliasing-in-ror/127567/3 "2008-01-30T13:45:46Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![dhaval\_parikh33](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@dhaval\_parikh33](https://www.ruby-forum.com/u/dhaval_parikh33)\
**Post date:** [January 30, 2008, 9:33pm UTC](https://www.ruby-forum.com/t/url-aliasing-in-ror/127567/4 "2008-01-30T21:33:42Z")

</div>

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.

On Jan 30, 6:45 am, Dhaval P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
