2

私は次のようなことをしています。

class SomeModel
   def crazy
      sm = SomeModel.where(:id => 1).first
      sleep(30)
      # after 15 seconds we update the record manually
      sm = SomeModel.uncached {SomeModel.where(:id => 1).first}
      begin
         sm.field = 'value'
         sm.save
      rescue ActiveRecord::StaleObjectError => e
         puts 'happening'
      end
   end
end

このモデル メソッドがコントローラーから呼び出されると、キャッシュされていない選択が手動更新後に実行されるため、古いオブジェクトを取得するべきではありませんが、テストするとそうではありません。私は何か誤解していますか?Rails 3.0.5 と Mysql を使用しています。

4

0 に答える 0