我在定义铁路线时遇到问题。
我有这条路线:
resource :feeds, only: [:edit, :destroy] do
member do
post 'insert_record'
delete 'delete_record'
end
collection do
post 'reorder'
end
end
这条路线
resources :brands do
member do
delete 'destroy_contact'
end
collection do
get 'list', :defaults => { :format => 'json' }
end
end
为什么在第一种情况下生成的路线是:
GET /admin/feeds(.:format) admin/feeds#show
PATCH /admin/feeds(.:format) admin/feeds#update
PUT /admin/feeds(.:format) admin/feeds#update
DELETE /admin/feeds(.:format) admin/feeds#destroy
对于品牌
GET /admin/brands/:id(.:format) admin/brands#show
PATCH /admin/brands/:id(.:format) admin/brands#update
PUT /admin/brands/:id(.:format) admin/brands#update
DELETE /admin/brands/:id(.:format) admin/brands#destroy
为什么我会失去" id"在饲料?我必须添加删除单个Feed的路由
答案 0 :(得分:3)
这是因为Feed中的resource
关键字是单数,而resources
关键字在品牌的情况下是复数。
Rails有Singular Resources这个概念来定义不是通过id
param找到的资源的路由,而是其他东西,或者根本没有意义{{1}在他们的路线。这些指南提供了id
路线的最简单示例,该路线始终显示当前登录的用户。