← Back to blog
· 1 min read · Routes in Rails3 Routes Rails

Routes in Rails3

Rails3 define routes in more efficient way

Routes for CRUD actions {% codeblock lang:ruby%} resources   :users {% endcodeblock %}

Also define for multiple resources {% codeblock lang:ruby%} resources :users,  :blogs, :books {% endcodeblock %}

Nested Routes

{% codeblock lang:ruby%} resources :users do resources  :blogs end {% endcodeblock %}

Member and collection

{% codeblock lang:ruby%} resources :blogs do :get => :preview, :on =>:member :get => :list, :on =>:collection end {% endcodeblock %}

if  we have more than one collection or member functions

{% codeblock lang:ruby%} resources  :blogs do member do :get  :preview :put :sort end collection do :get :list :get :detailed_info end end {% endcodeblock %}

Named Routes

{% codeblock lang:ruby%} match "history" => "site#index", :as => :history {% endcodeblock %}

Adding :as makes it a named route so that we can use historypath or historyurl in our application.

Route for Root {% codeblock lang:ruby%}

root   :to => "home#index"

{% endcodeblock %}

Constraints and Parameters in routes {% codeblock lang:ruby%}

match "search/:email(/:firstname/:lastname)" => "users#search",  :constraints => {:email => /\A([^@\s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})\Z/i}

{% endcodeblock %} Here email is mandatory parameter and first_name and last is optional parameter and in constraints email format is defined