2012-01-18 91 views
3

我是Rails的新手,我试图学习Rails支持使用HTTP电子标签的条件GET和条件PUT的程度。Rails 3.1是否支持条件PUT,就像条件GET一样?

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

读过源代码后,我想我可以自己实现条件PUT。我只是想知道如果Rails支持这种方式,我还没有找到。

谢谢!

+2

接受一些更多的问题! 27%很低 – Evert 2012-01-18 19:08:24

+2

我没有意识到。谢谢,完成! – thvo 2012-01-18 20:24:11

+0

你为什么要这个工作?如果你将数据传递给服务器或更新记录,那么你需要rails来接受这些数据,对吧?不要忽略电子标签的B/C。 – 2012-01-18 20:56:29

回答

0

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

如果您希望阻止某人在另一次更新后更新模型,则需要自己添加该模型。你可以自己看一下etag和头文件,所以一个辅助方法可能就是要走的路。