我使用Rails 5并设置路线,在控制台中键入rake路线,结果是:
Prefix Verb URI Pattern Controller#Action
new_report_templates GET /report_templates/new(.:format) report_templates#new
edit_report_templates GET /report_templates/edit(.:format) report_templates#edit
report_templates GET /report_templates(.:format) report_templates#show
PATCH /report_templates(.:format) report_templates#update
PUT /report_templates(.:format) report_templates#update
DELETE /report_templates(.:format) report_templates#destroy
POST /report_templates(.:format) report_templates#create
很奇怪,结果路由在url模板中没有id。我的路线:
Rails.application.routes.draw do
resource :report_templates
end
我使用gem'rails','〜> 5.1.6'。所以我的问题是:为什么我的结果路由中不包含id?
答案 0 :(得分:6)
这是因为您正在使用singular resources:
有时候,您拥有一种资源,客户端可以始终在不参考ID的情况下进行查找。
将您的路由更改为对某些包含id
的路由使用resources:
Rails.application.routes.draw do
resources :report_templates
end