Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rails中的声明性事务管理_Ruby - Fatal编程技术网

Ruby Rails中的声明性事务管理

Ruby Rails中的声明性事务管理,ruby,Ruby,我是Ruby和Rails的新手。 我想使用声明性事务管理,就像Rails中Java的@Transactional注释一样 有人知道如何在Rails中使用“声明性事务管理”吗?我不是java背景,但我读过有关声明性事务管理的文章。在轨道上,我们有 ActiveRecord::Base.transaction do #do some model operation #do some model operation end 在这里,只有当两个操作都成功时,才会执行对数据库的提交,如果其中一个

我是Ruby和Rails的新手。 我想使用声明性事务管理,就像Rails中Java的@Transactional注释一样


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

我不是java背景,但我读过有关声明性事务管理的文章。在轨道上,我们有

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

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

ruby中没有类似的注释,但是您可以使用元编程构建类似的东西。记住,private、protected和public也只是方法,而不是关键字。你可以给自己做一些类似的东西

transactional
def my_transactional_method
  puts "some stuff happens here"
end
也许这颗宝石能帮你。
甚至更好的是,还有一个示例实现了事务的装饰器。

感谢您的回复!但您的示例代码似乎是编程事务管理。我想做点像这样的事!(见10.5.6使用@Transactional)