Why rails is not generating a route helper for my 'match' route?

routes, ruby, ruby-on-rails, ruby-on-rails-3.2

Solution

This is because the route is not a simple route, it contains a parameter (in your case :id). In this case, you should specify the route name manually using `as`

match "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate', :via => :get, :as => "your_route_name"

As a side note, replace `match` + `via` with the corresponding method name.

get "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate'

It's shorter, and match is deprecated in Rails 4.

Problem

This is the two routes i declared in my config/routes.rb file : ``` namespace :projects do match "proj_rapports_contributeur/select" => 'proj_rapports_contributeur#select', :via => :get match "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate', :via => :get end ``` This is the resulting routes and helpers rails generate with `rake routes` : ``` projects_proj_rapports_contributeur_select_fr /hierarchie/rapports_contributeur/selectionner(.:format) projects/proj_rapports_contributeur#select {:locale=>"fr"} projects_proj_rapports_contributeur_select_en /en/projects/proj_rapports_contributeur/select(.:format) projects/proj_rapports_contributeur#select {:locale=>"en"} /hierarchie/rapports_contributeur/generer/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"fr"} /en/projects/proj_rapports_contributeur/generate/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"en"} ``` I don't understand why rails didnt generate a route helper for the second route ? Don't be surprised with the translated route. I'm using the gem 'rails-translate-routes' to translate routes (Resource : https://github.com/francesc/rails-translate-routes) === UPDATE for FINAL ANSWER === According to the answeer, for those wanting to know the end word, here it the routes I will be using : ``` namespace :projects do get "proj_rapports_contributeur/select" => 'proj_rapports_contributeur#select' get "proj_rapports_contributeur/generate/:id" => 'proj_rapports_contributeur#generate', :as => 'proj_rapports_contributeur_generate' end ``` And these are the resulting helpers : ``` projects_proj_rapports_contributeur_select_fr GET /hierarchie/proj_rapports_contributeur/selectionner(.:format) projects/proj_rapports_contributeur#select {:locale=>"fr"} projects_proj_rapports_contributeur_select_en GET /en/projects/proj_rapports_contributeur/select(.:format) projects/proj_rapports_contributeur#select {:locale=>"en"} projects_proj_rapports_contributeur_generate_fr GET /hierarchie/proj_rapports_contributeur/generer/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"fr"} projects_proj_rapports_contributeur_generate_en GET /en/projects/proj_rapports_contributeur/generate/:id(.:format) projects/proj_rapports_contributeur#generate {:locale=>"en"} ```

Original source