我在我的应用程序中添加了一个名为“Triage”的控制器,并添加了一条PUT路径,如下所示:
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将分类视为一种单一资源,因此通过约定,您可以请求资源的“索引”。
答案 0 :(得分:2)
这是因为单一的分类形式。 Rails注意到使用了分类而不是分类,因此作为约定的结果,请求将是索引。我已在另一个StackOverflow下面链接,这很好地解释了这一点。
您可以使用resource :triage
代替resources
(也不会自动创建索引路径)
答案 1 :(得分:0)
它在集合上,Rails会附加一个_index。如果要覆盖它,只需更改为:
resources :triage do
collection do
put :process_multiple, as: :proccess_multiple_triage
end
end
现在您可以使用process_multiple_triage_path