首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveRecord回滚并返回RecordInvalid消息

ActiveRecord回滚并返回RecordInvalid消息
EN

Stack Overflow用户
提问于 2015-07-09 06:13:05
回答 1查看 4.1K关注 0票数 0

我希望保存多个对象,并在其中任何一个失败时回滚所有对象。但是,我也希望呈现ActiveRecord::RecordInvalid消息,以便用户知道为什么它没有保存。我该怎么做?

代码语言:javascript
运行
复制
def save_multiple_things_or_error
  ActiveRecord::Base.transaction do
    thing_one.save!
    thing_two.save!
  rescue ActiveRecord::RecordInvalid => exception
    # exception.message is what I want to render
    raise ActiveRecord::Rollback
  end
end

这不起作用的原因有几个。我认为救援应该处于一个开始结束块中,但是如果我引发回滚,我就失去了RecordInvalid异常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-09 06:18:43

你可以试试这个:

代码语言:javascript
运行
复制
begin
  ActiveRecord::Base.transaction do
   thing_one.save!
   thing_two.save!
  end
rescue => e 
  raise ActiveRecord::Rollback
end

这对我的情况很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31309481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档