どういうわけか、私は金曜日にこれらを手に入れます。activerecordのオプティミスティックロックは、1行につき1回しか機能しません。
私の以前の質問には、同じ問題に関するでしたが、私が可能になりまし狭いもののダウンビット:
私はそれの意味を理解しようとすると、一日これでプレーしてきました。私は、このように指定されたlock_versionのcolumとテーブル、持っている:
add_column :jobs, :lock_version, :integer, :default=>0
をそして私はこのような何か:私は、その最初のを確認し、第2の同オブジェクトを参照
foo = job.create!
first = Job.find(foo.id)
second = Job.find(foo.id)
- 自分のIDがあるがmysqlのコマンドラインツールを使用してデータベース内のその行が表示されます。
first.some_attribute_field = 'first'
second.some_attribute_field = 'second'
first.save
second.save
これまでのところ問題ありません。私は正しくActiveRecord :: StaleObjectError例外を取得します。 しかし:
first = Job.find(foo.id)
second = Job.find(foo.id)
first.some_attribute_field = 'first'
second.some_attribute_field = 'second'
first.save
second.save
...と何も起こりません。私が正しい(スローされた例外)動作を得るのは、1回目と2回目のlock_versionが0のときだけです。最初の保存後、再び0になりません。これで大丈夫ですか?
私はRubyの男ではないんだけど、楽観的ロックは私のためによく知られているので、私はよルビー1.8.6と2.2.2アクティブなレコード
おかげで...
API(gotapi.comは私が使用しているもの)で「ダーティー」と「変更」を調べることができます。 何もしないために何もしません。 – Sai