我有一个我故意崩溃的rails应用程序..它是本地的,我只是按ctrl + c并在处理记录的中途杀死它..
在我看来,不应该提交块中的记录。这是 postgres“错误”还是 rails“错误”,还是 dave 错误?
ActiveRecord::Base.transaction do
UploadStage.where("id in (#{ids.join(',')})").update_all(:status => 2);
records.each do |record|
record.success = process_line(record.id, klas, record.hash_value).to_s[0..250]
record.status = 1000
record.save();
end
end
我通过读取状态为 1 的所有记录来生成我的 ID。
除了这个函数将状态设置为 1000 之外,什么都没有。
如果操作因任何原因崩溃,我希望数据库中没有状态 = 2 的记录......但这不是我所看到的。一半的记录状态为 1000,另一半的状态为 2...。
我错过了什么吗?
如果应用程序崩溃,我如何确保没有 2?