PATCH在对对象进行(常见)部分更新时,Rails 4引入了请求作为默认请求方法.这符合HTTP标准,可以在此处找到讨论此决定的好(较旧)帖子:
http://weblog.rubyonrails.org/2012/2/25/edge-rails-patch-is-the-new-primary-http-method-for-updates/
当您在config/routes.rb类似中定义资源时
resources :books
Run Code Online (Sandbox Code Playgroud)
然后在rails 4中默认创建以下路由:
GET /books books#index
GET /books/:id books#show
POST /books books#create
DELETE /books/:id books#destroy
PATCH /books/:id books#update
PUT /books/:id books#update
Run Code Online (Sandbox Code Playgroud)
由于我正在开发一个新的应用程序而不必关心向后兼容性,我想删除过时的PUT路由.
有没有一种简单的方法来实现这一目标config/routes.rb?
解释为什么这PUT条路线困扰我:我使用swagger-docs gem为我的API自动生成一个swagger文档.由于所描述的行为,我总是有两个端点定义用于每个资源的更新请求(PUT和PATCH).此外,由于这是一个可能不赞成的路线,我希望我的API从今天起不支持它.
更新由于第一个答案朝着错误的方向前进,我想澄清一下:我不想删除'更新'动作,而只是保留PATCH路线时只删除过时的PUT路线.