Ruby on rails 附加到错误添加到rails 4路由的路径的索引

Ruby on rails 附加到错误添加到rails 4路由的路径的索引,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,我在应用程序中添加了一个名为“Triage”的控制器,并添加了一个PUT路由,如下所示: resources :triage do collection do put :process_multiple end end 与预期的进程\u多个\u分类\u路径路径不同,它似乎被处理为进程\u多个\u分类\u索引\u路径: process_multiple_triage_index_path PUT /triage/process_multiple(.:format) t

我在应用程序中添加了一个名为“Triage”的控制器,并添加了一个PUT路由,如下所示:

resources :triage do
  collection do
    put :process_multiple
  end
end
与预期的进程\u多个\u分类\u路径路径不同,它似乎被处理为
进程\u多个\u分类\u索引\u路径

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视为单一资源,因此按照惯例,您会请求资源的“索引”。

它在集合上,所以Rails会附加一个_索引。如果要覆盖它,只需更改为:

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

现在,您可以使用
处理\u多个\u分类\u路径

这是因为分类的单一形式。Rails注意到使用了triage而不是triage,因此根据惯例,请求将是索引。我在下面链接了另一个StackOverflow,很好地解释了这一点

您可以使用
resource:triage
而不是
resources
(这也不会自动创建索引路由)


那么在集合中添加的任何路由都会添加索引?这样做的目的是什么?注意:我将我的路由更新为
put:process\u multiple,as::process\u multiple
,但路由仍然是process\u multiple\u triage\u triage\u index\u path