Rails中的声明式事务管理

时间:2012-10-13 07:30:18

标签: ruby

我是Ruby和Rails的新手。 我想在Rails中使用声明式事务管理,如Java的@Transactional注释。

有人知道如何在Rails中使用“声明式事务管理”吗?

2 个答案:

答案 0 :(得分:1)

没有像ruby中的注释,但你可以使用元编程来构建类似的东西。请记住,私有,受保护和公共也只是方法而不是关键字。你可以建立类似的东西

transactional
def my_transactional_method
  puts "some stuff happens here"
end

也许这个宝石https://github.com/fredwu/ruby_decorators可以帮助你。 或者甚至更好https://github.com/michaelfairley/method_decorators,还有一个实例用于交易的装饰器。

答案 1 :(得分:0)

我不是来自java背景,但我读到了声明式事务管理。在轨道我们有

ActiveRecord::Base.transaction do
  #do some model operation
  #do some model operation
end

这里只有当两个操作都成功时,才会执行对db的提交,如果其中一个失败,则不会将任何操作提交给db。