Rails 3.1是否像条件GET一样支持条件PUT?

时间:2012-01-18 18:40:50

标签: ruby-on-rails http rest

我是Rails的新手,我正在尝试了解Rails在多大程度上支持使用HTTP电子标签的条件GET和条件PUT。

看来Rails“新鲜吗?”方法支持条件GET(If-None-Match标头),但不支持条件PUT(If-Match标头)。看来这是因为“新鲜吗?”使用“etag_matches?”,它只查看If-None-Match标题。

阅读完源代码后,我猜我自己可以实现有条件的PUT。我只是想知道Rails是否以我尚未找到的方式开箱即用。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

电子标签不仅用于缓存,还用于并发控制。如果有人已经更新了服务器上的资源,因为客户端已经读取了它,那么如果您关心正确的并发控制,则更新不应该成功。

如果您希望在另一次更新后阻止某人更新模型,则需要自行添加。您可以自己查看etag和标题,因此可以采用辅助方法。