我有一个基于Matteo Melanis blog post的api令牌控制器。我想向控制器添加两个自定义操作register
和unregister
,因此看起来像这样的路径
namespace :api do
namespace :v1 do
resources :tokens,:only => [:create, :destroy]
end
end
现在变成了这个
namespace :api do
namespace :v1 do
resources :tokens do
put 'register', on: :member, as: :register
delete 'unregister', on: :member, as: :unregister
end
end
end
这是我发现不允许unregister
取消与destroy
动词相关联的CRUD DELETE
操作的唯一方法。我试着做
resources :tokens, :only => [:create, :destroy, :register, :unregister] do
在上面的代码中,以及与块并行定义resources :tokens,:only => [:create, :destroy]
。然而,我得到了不受欢迎的所有CRUD +自定义操作,或者其中一个自定义操作覆盖了CRUD操作。
简而言之,我想以
结束 register_api_v1_token PUT /api/v1/tokens/:id/register(.:format) api/v1/tokens#register
unregister_api_v1_token DELETE /api/v1/tokens/:id/unregister(.:format) api/v1/tokens#unregister
api_v1_tokens GET /api/v1/tokens(.:format) api/v1/tokens#index
POST /api/v1/tokens(.:format) api/v1/tokens#create
DELETE /api/v1/tokens/:id(.:format) api/v1/tokens#destroy
这是可能的,如果是的话:我怎么能这样做?
答案 0 :(得分:1)
这应该有效:
resources :tokens, only: [:create, :destroy] do
member do
put 'register'
delete 'unregister'
end
end