equ*_*nt8 5 ruby ruby-on-rails
在 Rails 3 中,当您执行 activeRecord.save 时是事务提交还是方法退出时?
所以我想弄清楚的是 MySQL 是否是在保存后立即编写的!或者在我退出定义黑色后保存
def something
1000.times do
o = Order.new(:name => "Tomas")
o.save
end
end
Run Code Online (Sandbox Code Playgroud)
您可能应该阅读一些关于ActiveRecord 对象回调链的内容;它解释了你的对象在引擎盖下发生了什么。
基本上,当您调用 save 时,ActiveRecord::Base 对象将按照文档列出的顺序遍历所有回调,您可以看到提交发生的位置(在我撰写本文时的第 6 步和第 7 步之间)。ActiveRecord 甚至会在提交发生后公开回调,以防您在确定某些内容已提交到数据库时需要一些条件逻辑,但通常我们相信如果save返回 true,则一切正常。
因此,为了明确回答您的问题,提交发生在您的保存调用期间,而不是您退出方法时。
| 归档时间: |
|
| 查看次数: |
6795 次 |
| 最近记录: |