为什么在mysql事务未完成时调用Model.create!()会返回?

时间:2012-11-06 18:41:38

标签: ruby-on-rails activerecord

我看了一个视频,他们的注册页面导致了问题,因为调用了:

person = Person.create!(params)
实际上,当mysql尚未完成交易时,

会返回。

为什么会在交易前返回?

视频:http://cdn.confreaks.com/system/assets/datas/5097/original/1119-gogaruco2012-services-scale-backgrounding-and-wtf-is-going-on-here-small.mp4?1349207263

1 个答案:

答案 0 :(得分:0)

我没有观看视频,但根据我对交易的了解,拨打createfind或其他任何内容,都不在任何交易中!

您需要自己在代码中定义事务:

Person.transaction do
   [...]
end

以下是如何在rails中使用事务的一些很好的示例:http://markdaggett.com/blog/2011/12/01/transactions-in-rails/