Railsで楽観的ロック AddLockVersionToモデル lock_version:integer class AddLockVersionToモデル def self.up add_column :テーブル, :lock_version, :integer, :default => 0 end def self.down remove_column :テーブル, :lock_version end end class ApplicationController < ActionController::Base rescue_from ActiveRecord::StaleObjectError, :with => :エラーを表示するメソッド end

Railsの 楽観的ロック と 悲観的ロック の特徴 楽観的ロック ・簡単 ・DBを問わない ・処理が重複したときはErrorを出す【重要】 悲観的ロック ・findに:lock => trueを入れないといけないのでちょっとめんどい (Rails2.3.5だと user.lock! がうまく動かなかった) ・SQLiteは無理っぽい ・処理が重複したときは処理待ちになるのでErrorは出ない【重要】