我是Rails的新手,我正在尝试了解Rails在多大程度上支持使用HTTP电子标签的条件GET和条件PUT。
看来Rails“新鲜吗?”方法支持条件GET(If-None-Match标头),但不支持条件PUT(If-Match标头)。看来这是因为“新鲜吗?”使用“etag_matches?”,它只查看If-None-Match标题。
阅读完源代码后,我猜我自己可以实现有条件的PUT。我只是想知道Rails是否以我尚未找到的方式开箱即用。
谢谢!
答案 0 :(得分:0)
电子标签不仅用于缓存,还用于并发控制。如果有人已经更新了服务器上的资源,因为客户端已经读取了它,那么如果您关心正确的并发控制,则更新不应该成功。
如果您希望在另一次更新后阻止某人更新模型,则需要自行添加。您可以自己查看etag和标题,因此可以采用辅助方法。