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

时间:2017-11-17 09:29:14

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

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

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

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

1 个答案:

答案 0 :(得分:4)

按照 HTTP 标准执行请求类型。

@Mikhail如何在概念上提到:

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

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

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