在Rails中更新RESTful路由的操作(PATCH或PUT)

我是Ruby on Rails的新手。为什么Rails中RESTful路由的更新操作映射到两个HTTP动词,即PATCH和PUT?

PATCH /articles/:id(.:format) articles#update PUT /articles/:id(.:format) articles#update 

更新资源(通用CRUD)时,调用两者中的哪个方法?

这样做是为了遵循请求类型的HTTP标准。

@Mikhail如何在概念上提到:

  • 当您只想更新对象的一部分时, PATCH是一种正确的请求类型
  • 当您希望使用新数据完全覆盖对象时, PUT是一种标准方式

虽然在Rails中这一切都可以通过单个update操作轻松完成,而差异只是在传递的params ,然后Rails生成两条路径来覆盖标准,但是没有真正需要为此制作2个不同的控制器动作。

据我所知, Rails使用PUT作为默认值,但您可以使用它们中的任何一个。 只需按照提到的概念规则