Rails: routes

A brief breakdown of this route:

    match “/pick_gender(/:gender)”, to: “my_controller#pick_gender”, via: “GET”, as: :pick_gender 

1. `match` will match a GET (i.e. it will be the same as using `get`) if we use `via: “GET” 

You can simplify it to:

    get “/pick_gender(/:gender)”, to: “my_controller#pick_gender”, as: :pick_gender 

or if you want to use the `=>` syntax to:

    get “/pick_gender(/:gender)” => “my_controller#pick_gender”, as: :pick_gender 

2. `to:` matches this resource (the GET on the URL) to the `pick_gender` method of the `my_controller` controller 

3. finally, using `as:` will create a named route, i.e. you get a `pick_gender_path` and `pick_gender_url` for free as named helpers

More on named routes here:

http://guides.rubyonrails.org/routing.html#naming-routes

More on Rails routes generally here:

http://guides.rubyonrails.org/routing.html

More on `match` vs `get` here:

http://stackoverflow.com/questions/6988866/ruby-on-rails-routes-difference-between-get-and-match

Leave a Reply

Your email address will not be published. Required fields are marked *