1

私はシステムを開始しますが、すべてのニーズをカバーするレールを選択しました。

システムのある時点でデータベースの更新に一貫性を持たせる必要があります。いくつかの公式ドキュメントで、Rails がレコードのバージョンを自動的にチェックできることを見つけたのを覚えています。

問題は次のとおりです。

  • データベースのテーブルにレコードが存在するとします。「アカウント」としましょう。
  • Bob という名前のユーザーがそのレコードを見つけて編集を開始するとします。ユーザーが名前を「Incomings」から「Sales」に変更するとします。
  • Bob がレコードを編集しているときに、Susan という名前の別のユーザーがまったく同じレコードを見つけて編集を開始したとします。Susan がアカウントの名前を「Incomings」から「Service Fees」に変更したいとします。
  • 次に、Bob は変更を保存します。
  • Bob が変更を保存した後、Susan は自分の変更を保存しようとします。

この時点で、システムはスーザンに、別のユーザーがレコードを変更したため、その変更を保存できないことを通知する必要があります。

この検証は手動で行うこともできますが、Rails によって自動的に行われることを覚えています。この検証が必要なデータベースのテーブルに対する唯一の要件は、「バージョン」列を追加することであり、Rails がこれを処理します。列を「バージョン」と呼ぶ必要があるかどうかは本当に覚えていませんが、実際には列だけがこの機能を有効にします。

問題は、そのドキュメントが見つからないことです。誰かがそのドキュメントへのリンクを提供してくれたら、私は感謝します。なぜなら、「バージョン」列の要求は私が覚えているすべてであり、私が世話をしなければならない他のことを知りたくないからです。

前もって感謝します。

4

1 に答える 1

1

さて、私は自分の質問に対する答えを見つけました。

ドキュメントは API に関するもので、次の場所にあります。

http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html

ドキュメントは非常に短いです!そして、必要な列の名前が間違っていました。列の正しい名前は「lock_version」です。

少なくとも、私の質問を読んでくれたすべての人に感謝します。

于 2011-09-07T15:01:18.893 に答える