我在铁路的申请中遇到了一个非常令人费解的问题。这个问题几乎从未发生过,但确实发生在上周一次
我有一个控制器方法来更新某些模型:
def updateModels
#some logic here
ActiveRecord::Base.transaction do
#1 @model1.profiles.destroy_all
#2 @model1.profiles << @profiles
#3 @model1.reset_profile_members
#4 @model1.save!
end
end
几乎所有时间上面的代码都能完美运行,所有更新#1#2#3都可以无缝执行。然而,上周我们遇到了更新#1和#2发生而更新#3没有发生的情况。我有点困惑,因为一切都在交易中,这不应该发生。我的数据库是MySQL。
关于这里可能出现什么问题的任何想法?