2012-01-18 80 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和頭文件,所以一個輔助方法可能就是要走的路。