1

我在我的应用程序中添加了一个名为“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 视为单一资源,因此按照惯例,您需要请求资源的“索引”。

4

2 回答 2

2

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

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

更多信息在这里

于 2013-09-11T02:57:59.970 回答
0

它在集合中,所以 Rails 附加了一个 _index。如果要覆盖它,只需更改为:

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

现在你可以使用process_multiple_triage_path

于 2013-09-10T23:29:05.823 回答