railsでAttempted to update a stale object

2011/06/23 5:59 に 森山誠二郎 が投稿
optimistic lockを使っていて、私がよくやるお馬鹿なパターン
    model_libraries.each_with_index{|model_lib, i|
      model_lib.reload ーーー これを忘れるとおきる
      unless model_lib.simulator == sim
        model_lib.simulator = sim
        model_lib.save!  # convert models if necessary                      
      end

model_librariesには別々のmodel_libが入っていると思い込んでいて、実は同じmodel_lib
だった場合、reloadを忘れるとsaveする前のmodel_libをまたsaveしようとしてoptimistic lockが
Comments