:as in rails routes.rb

ryanprayogo picture ryanprayogo · Jan 14, 2011 · Viewed 29.9k times · Source

In config/routes.rb, I tried both:

root :to => 'things#index', :as => 'things'

and

root :to => 'things#index'

When I hit http://localhost:3000/, both approaches work, and nothing seems to be different.

What is the :as option used for?

Answer

Andy Lindeman picture Andy Lindeman · Jan 14, 2011

The :as option forms a named route.

Usually it's used in a non-root route. For example:

match '/search' => 'search#search', :as => 'search' # SearchController#search

You could then do something like:

<%= link_to search_path, 'Click Here to Search!' %>

search_path and search_url are defined because of the :as

For a root route, you don't really need :as because the the URL helpers root_path and root_url are defined for you by Rails.