Rails路线中不包含ID

时间:2018-07-02 01:05:56

标签: ruby-on-rails ruby

我使用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?

1 个答案:

答案 0 :(得分:6)

这是因为您正在使用singular resources

  

有时候,您拥有一种资源,客户端可以始终在不参考ID的情况下进行查找。

将您的路由更改为对某些包含id的路由使用resources

Rails.application.routes.draw do
  resources :report_templates
end