Earlier today, a friend working on a project asked me how we approached routes on our website. If you take a quick peak at our website, you’ll see that we have URLs like so:
- http://planetargon.com/
- http://planetargon.com/who-we-are
- http://planetargon.com/who-we-are/robby-russell
I couldn’t remember where I came across this before and wasn’t quickly finding it in the Ruby on Rails API, so decided that I’d do a quick write up on it.
When we launched our new site a few months ago, we were working off an
existing code base. We have a model named, TeamMember
and a
corresponding controller. When we decided to come up with new
conventions for our URL structure, we opted to ditch the normal Rails
conventions and go our own route. What we weren’t sure about was how to
alias resources in our routes nicely. After some digging around, we came
across the :as
option.
So, our route was:
map.resources :team_members
{lang=”ruby”}\
Which provided us with:
- /team_members
- /team_members/robby-russell
We simply added :as => 'who-we-are'
to our route:
map.resources :team_members, :as => ‘who-we-are’
{lang=”ruby”}\
…and we got exactly what we were looking for in our URLs.
```
* /who-we-are
* /who-we-are/gary-blessington
```
If you look at our site, you’ll notice that we did this in a few areas of our application so that we could define our own URL structure that was more friendly for visitors and search engines.
Anyhow, just a quick tip for those who want to change up their URLs with Ruby on Rails.
s., if you know where I can find this documented, let me know so that I can provide a URL in this post for others. :-)