yzhrain 2010-04-16 17:12
浏览 355
已采纳

请问像before_create这种callback方法是跟save方法在同一个事务内吗?

情景:
[code="Ruby"]
class Model < ActiveRecord::Base

before_create :xxoo

def xxoo
other = OtherModel.create
end

end
[/code]

请问这种情况下,如果 Model#save 失败后, OtherModel会回滚吗?

也就是说 xxoo 方法是否包含在 Model#save 的事务中.

  • 写回答

2条回答 默认 最新

  • okela1985851010 2010-04-16 17:49
    关注

    刚才理解错你的题目了... :lol:
    [quote]
    请问这种情况下,如果 Model#save 失败后, OtherModel会回滚吗?

    也就是说 xxoo 方法是否包含在 Model#save 的事务中. [/quote]
    这要看你的调用save是更新还是创建.
    a.new,
    a.save,
    会调用before_create,同样产生错误也会回滚.
    a=A.find(1)
    a-----
    a.save,
    不会调用before_create,会调用before_update,产生错误也会回滚.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?