2013-09-10 44 views
1

我添加了一個名爲「分流」到我的應用程序控制器,並增加了一個PUT路線如下:INDEX_追加錯誤地加入到軌路4路

resources :triage do 
    collection do 
    put :process_multiple 
    end 
end 

而不是預期的process_multiple_triage_path路線的,現在看來,這被處理爲process_multiple_triage_index_path

process_multiple_triage_index_path PUT  /triage/process_multiple(.:format) triage#process_multiple 
triage_index_path GET  /triage(.:format) triage#index 
POST  /triage(.:format) triage#create 

答案:原來這是因爲分流被看作是由Rails的單一資源,因此按照慣例的方式,你請求的資源的「指標」。

回答

2

這是因爲分流的單數形式的。 Rails注意到使用了分類,而不是分類,因此作爲約定的結果,請求將成爲索引。我已經在另一個StackOverflow下面鏈接了,它解釋了這一點。

可以(自動也不會創建索引的路線或者)使用resource :triage代替resources

More info here

0

這是在collecion,所以Rails附加一個_index。如果你想覆蓋它,只是更改爲:

resources :triage do 
    collection do 
    put :process_multiple, as: :proccess_multiple_triage 
    end 
end 

現在你就可以使用process_multiple_triage_path

+0

所以集合中添加任何途徑增加_index?這樣做的目的是什麼? – etc

+0

注意:我將路由更新爲'put:process_multiple,如::process_multiple',路由仍然是process_multiple_triage_triage_index_path – etc