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

cur*_*ser 7 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
Run Code Online (Sandbox Code Playgroud)

当我更新资源(一般 CRUD )时,会调用这两者中的哪个方法?

Ant*_*hov 6

它是按照请求类型的HTTP标准完成的。

@Mikhail 如何从概念上提到:

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

虽然在 Rails 中,这两个操作都可以通过单个update动作轻松完成,区别在于 pass params,然后Rails制作了两条路线来覆盖标准,但实际上没有必要为此制作 2 个不同的控制器动作。

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