Ruby on rails 并非所有成员路由都在querystring中获得id
某些具有特定名称的成员路由未在查询字符串中添加预期的Ruby on rails 并非所有成员路由都在querystring中获得id,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,某些具有特定名称的成员路由未在查询字符串中添加预期的:id。 这些路线: resources :tests do member do get :foo end end resources :contacts do member do get :foo end end resource :tasks do member do get :foo end end resource :fruits do member do get :f
:id
。
这些路线:
resources :tests do
member do
get :foo
end
end
resources :contacts do
member do
get :foo
end
end
resource :tasks do
member do
get :foo
end
end
resource :fruits do
member do
get :foo
end
end
resource :cars do
member do
get :foo
end
end
resources :appointments do
member do
get :foo
end
end
产生以下结果:
foo_test GET /tests/:id/foo(.:format) tests#foo
foo_contact GET /contacts/:id/foo(.:format) contacts#foo
foo_tasks GET /tasks/foo(.:format) tasks#foo
foo_fruits GET /fruits/foo(.:format) fruits#foo
foo_cars GET /cars/foo(.:format) cars#foo
foo_appointment GET /appointments/:id/foo(.:format) appointments#foo
任务、水果和汽车没有id。这是为什么?您的问题在于
资源(单数)与资源(复数)。您会注意到,每次在您的路线(测试、联系、约会)中有一个:id
,它都是使用资源或使用资源声明的
通过使用资源
(单数),您隐含地说您只有一个这种类型的资源,因此不需要和id,这就是为什么它不在这里
您可以在此处找到更多信息::facepalm。真不敢相信我错过了。