在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
作为默认值,但您可以使用它们中的任何一个。 只需按照提到的概念规则