2013-04-03 54 views
5

這是兩條路線我在配置/ routes.rb中文件中聲明:爲什麼rails不會爲我的'匹配'路徑生成路由幫助器?

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 

這是造成線路和助手軌生成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"} 

我不明白爲什麼鐵軌沒有生成第二條路線的路線幫手?

不要對翻譯過的路線感到驚訝。我使用的是創業板導軌,翻譯,路線'翻譯路線(來源:https://github.com/francesc/rails-translate-routes


爲最終的答案===

=== UPDATE按照ANSWEER,爲那些想知道結局的話,在這裏我將使用的路線:

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 

而這些都是造成助手:

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"} 

回答

7

這是因爲路由不是簡單的路由,它包含一個參數(在你的情況下:id)。在這種情況下,你應該指定使用as

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

作爲一個側面說明手動航線名稱,用相應的方法名稱替換match + via

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

它的短,比賽用Rails棄用4

+0

謝謝!很遺憾,我們無法在官方文檔http://guides.rubyonrails.org/routing.html上找到有關「get」或route-helpers路徑參數的任何信息 – Douglas

相關問題