elkun49
elkun49

Reputation: 133

Rails routes do not contain id in that

I use rails 5 and setting route, type rake routes in console and result is:

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    

It's so weird to see that result routes do not have id in url template. My route:

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

I use gem 'rails', '~> 5.1.6'. So my question is: why my result routes do not contain id in that ?

Upvotes: 0

Views: 711

Answers (1)

jdgray
jdgray

Reputation: 1983

It's because your are using singular resources:

Sometimes, you have a resource that clients always look up without referencing an ID.

Change your routes to use resources for certain routes to contain the id:

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

Upvotes: 9

Related Questions