2012-01-31 43 views
1

在我的項目rails有一個用戶的CRUD,當我在兩個不同的瀏覽器編輯視圖,更新一個用戶修改值,並在其他瀏覽器可以更新用戶不知道是否已被修改。避免多個更新與軌道相同的形式3

如何避免這種行爲?與CRSF令牌的形式?

非常感謝你 問候!

回答

1

我不認爲CSRF令牌是你想要的。一種方法是散列表單可以更改的屬性,並將該散列呈現爲隱藏字段中的表單。 (請參閱http://www.ruby-doc.org/stdlib-1.9.3/libdoc/digest/rdoc/Digest.html用於生成散列)。當提交表單並且在您更新表單中的模型屬性之前,將表單提交的散列與您要更新的模型中相同屬性的散列進行比較。如果它們匹配,那意味着自從表單呈現以來模型沒有改變。

一個不太複雜的方法是隻通過模型的updated_at時間戳來做大致相同的事情。

+0

非常感謝你jtrim,我用這個技巧來避免同時編輯。 ;) – joshka 2012-02-01 11:14:34