在Rails 3中,当你执行activeRecord.save时,事务提交还是方法退出的时候?
所以我想弄清楚的是,如果MySQL是在保存后立即编写的!或者在我退出定义黑色
后保存def something
1000.times do
o = Order.new(:name => "Tomas")
o.save
end
end
答案 0 :(得分:4)
你应该读一下ActiveRecord object callback chain;它解释了你的物体在引擎盖下发生了什么。
基本上,当你调用save时,ActiveRecord :: Base对象将按照文档列出的顺序遍历所有回调,你可以看到提交的位置(在我写这篇文章时的步骤6和7之间) )。 ActiveRecord甚至会在提交发生后公开回调,以防您在确定已经将某些内容提交到数据库时想要一些条件逻辑,但通常我们相信如果save
返回true,一切都很好。
因此,为了明确回答您的问题,在保存调用期间提交,而不是在退出方法时。