
楽観的ロック lock_versionを使って
2014年06月24日
lock_version:integer(default:0)をモデルに用意しておくと、トランザクション処理で楽観的ロックをかけてくれる。
「save!」を実行するたびに、lock_version->0,1,2と自動的に増えて、
トランザクションが完了すると、lock_bersion=2になっています。
rails g scaffold member name email lock_version:integer
vim db\migrate\xxx_create_member.rb # default: 0
rake db:migrate
rails c
Memver.transaction do
m = Member.new
m.name = "hoge"
m.save!
m.email = "hoge@fuga.com"
m.save!
m.name = "hogehoge"
m.save!
end
Member.all # lock_version => 2
「save!」を実行するたびに、lock_version->0,1,2と自動的に増えて、
トランザクションが完了すると、lock_bersion=2になっています。
Posted by kanedayo at 23:51│Comments(0)