Hatena::Grouprubyist

うんたらかんたらRuby RSSフィード

2009-09-26楽観的ロック

楽観的ロック

| 楽観的ロック - うんたらかんたらRuby を含むブックマーク はてなブックマーク - 楽観的ロック - うんたらかんたらRuby

Railscasts - Optimistic Locking

簡単すぎる。

まぁ悲観的ロック(select for update)も簡単なようですが

楽観的ロックでたいていこと足りそう。


書き方

generate

script/generate migration add_products_lock_version

db/migrateへ追記

add_column :products, :lock_version, :integer, :default => 0, :null => false

remove_column :products, :lock_version

rake

rake db:migrate

viewへ追記

<%= f.hidden_field :lock_version -%>

controllerでrescue

rescue ActiveRecord::StaleObjectError
  @product.reload
  render :action => 'confilict'

以上。

トラックバック - http://rubyist.g.hatena.ne.jp/rochefort/20090926