如何在资源有限的情况下添加自定义路由

How to add a custom route with limited resources

我的 friendships 控制器起初只需要两个动作,createdestroy,所以我在 config/routes.rb 中添加了以下内容:

resources :friendships, only: [:create, :destroy]

但是,我必须添加自定义 drop 操作以允许用户放弃交友请求。 由于我只需要这三个动作,我不会不使用所有RESTful资源,所以我想知道我是否可以编辑config/routes.rb如下:

resources :friendships, only: [:create, :destroy] do
  member do
    post :request, action: :drop
  end
end

是的,你可以;这样做将导致这条路线:

            Prefix Verb   URI Pattern                        Controller#Action
request_friendship POST   /friendships/:id/request(.:format) friendships#drop
       friendships POST   /friendships(.:format)             friendships#create
        friendship DELETE /friendships/:id(.:format)         friendships#destroy