2012-01-31 9 views
1

私のプロジェクトでは、2つの異なるブラウザで編集ビューになっているときに、変更された値で1人のユーザーを更新し、他のブラウザでユーザーを更新できますifが変更されたことを知らずに。同じフォームで複数のレールを使用しない3

この現象を回避するにはどうすればよいですか? CRSFトークンはフォームにありますか?

ありがとうございました 挨拶!

答えて

1

私はCSRFトークンがあなたの望むものだとは思わない。 1つの方法は、フォームが変更可能なプロパティをハッシュし、隠しフィールドのフォームにそのハッシュをレンダリングすることです。フォームが送信され、フォームからモデルのプロパティを更新する前に、フォームによって送信されたハッシュと、更新しようとしているモデルの同じプロパティのハッシュを比較します(ハッシュを生成するにはhttp://www.ruby-doc.org/stdlib-1.9.3/libdoc/digest/rdoc/Digest.htmlを参照してください)。 。一致すると、フォームがレンダリングされてからモデルが変更されていないことを意味します。

あまり畳み込まれていないアプローチは、モデルのupdated_atタイムスタンプを介してのみ、ほぼ同じことを行うことです。

+0

あまりにもjtrimありがとう、私は同時編集を避けるためにこのトリックを使用しました。 ;) – joshka

関連する問題