10
为什么这个事务回滚,如果连一个创建!失败? 这是在一个控制器,如果这有什么区别。Rails事务没有回滚
def process_photos(photos)
ActiveRecord::Base.transaction do
begin
photos.each do |photo|
Photo.create!(creator_user: @user, buyer: @buyer, url: photo['url'])
end
rescue
raise ActiveRecord::Rollback
end
end
end
我明确地发送一些数据与一些不良记录。好的是创造,坏的不是,但我需要整个事情回滚,即使一个失败。
这是我的rspec测试(传递一张json数组照片),它是递增的。
expect { post :create, json }.not_to change(Photo, :count)
你的嵌套@ kjs3有点不对劲。特别是'ActiveRecord :: Base.transaction do'似乎没有匹配的'end'。 – thomasfedb
复制失败。它是嵌套的权利。固定。 – kjs3
看起来这是一个rspec问题。当我用curl发帖时,交易似乎回滚。 – kjs3