2013-10-01 15 views
1

下面裏面使用Rails 3.1.6活動記錄 - destroy_all並創建一個交易

Model.transaction do 
    model.events.destroy_all 
    2.times { model.events.create!(some_body) } 
end 

的期望是要始終有兩個,只有兩個模式下的事件對象,我們執行關於MySQL 5.5的代碼。

當我在兩個線程上運行這段代碼時,經常會遇到四個事件對象。我希望這兩個線程都會在事務塊內部序列化代碼的執行。顯然交易不會那樣工作。

是否有共同的模式來做這種事情?

回答