作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Controller 中,我有一些类似的代码...
...
if user.save
something = Something.where("thing = ?", thing)
if !(something.nil?)
render json: { something: something }
else
#I WOULD LIKE TO ROLLBACK THE user.save HERE
end
else
render json: { error: user.errors.full_messages }, status: :bad_request
end
raise ActiveRecord::Rollback, "Could not create new User, Something was not found."
render json: { error: "Could not create new User, Something was not found"}, status: :unprocessable_entity
最佳答案
如果您想以与您提到的相同的方式使用交易,则可以执行以下操作
User.transaction do
if user.save
something = Something.where("thing = ?", thing)
if !(something.nil?)
render json: { something: something }
else
raise ActiveRecord::Rollback
end
else
render json: { error: user.errors.full_messages }, status: :bad_request
end
end
something = Something.where("thing = ?", thing)
if !(something.nil?)
if Something.exists?(thing: thing)
关于ruby-on-rails - 如何回滚Rails保存/交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649331/
我是一名优秀的程序员,十分优秀!