Ruby on rails 附加到错误添加到rails 4路由的路径的索引
我在应用程序中添加了一个名为“Triage”的控制器,并添加了一个PUT路由,如下所示: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
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