Rails路线:错过了' id'在饲料路线

时间:2015-05-27 13:07:37

标签: ruby-on-rails

我在定义铁路线时遇到问题。

我有这条路线:

     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的路由

1 个答案:

答案 0 :(得分:3)

这是因为Feed中的resource关键字是单数,而resources关键字在品牌的情况下是复数。

Rails有Singular Resources这个概念来定义不是通过id param找到的资源的路由,而是其他东西,或者根本没有意义{{1}在他们的路线。这些指南提供了id路线的最简单示例,该路线始终显示当前登录的用户。

相关问题