私は次のようなことをしています。
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 を使用しています。