mongoid 数据库如何使用 transction 进行事务的处理?请大侠赐教。ActiveRecord::Base 是可以使用 transction 进行处理的。
没有,不行。
#1 楼 @Rei 如果要用有其他办法么?
不支持,ActiveRecord::Base#transction 本质上还是调用数据库的事务功能,MongoDB 不支持的话 Rails 也不支持
ActiveRecord::Base#transction
楼主觉得重发一帖 Mongodb 就能支持事务了?http://ruby-china.org/topics/18521
#3 楼 @swordray 我用的 mongoid 数据库,在调用类里的实例方法方法时 ActiveRecord::Base.transction {...}这样是可以的,但是直接 Class.transction {...}却不行。
#4 楼 @Rei 不是这个意思!之前我还不知道 mongoid 不支持 transction
单文档具备原子性
把 transaction 牵涉到的所有数据放到同一个文档中,用原子操作就可以了,如果没法做到,请不要用 mongodb. 或者自己用文件锁实现逻辑事务也可以。如果部署到多台机器,那你可以在一个挂载的公共磁盘上锁... 最后还是直接用关系数据库方便...