保存时收到ActiveRecord :: RecordNotSaved错误

kru*_*hah 3 ruby ruby-on-rails

在创建新对象时,我在before_save上收到ActiveRecord :: RecordNotSaved错误.

但我想获取除ActiveRecord :: RecordNotSaved错误消息之外的正确消息.

我如何获取正确的错误消息并将其传递给救援人员?

begin

  #some logic
  raise unless object.save!
rescue ActiveRecord::RecordNotSaved => e
  # How may fetch proper message where my object is failing here ..
  # like object.errors.message or something like that.
end
Run Code Online (Sandbox Code Playgroud)

kru*_*hah 10

begin
  #some logic
  @object.save!
rescue ActiveRecord::RecordNotSaved => e
  @object.errors.full_messages
end
Run Code Online (Sandbox Code Playgroud)

更新

begin
  #some logic
  @object.save!
rescue ActiveRecord::RecordNotSaved => e
  @object.errors.full_messages
end
Run Code Online (Sandbox Code Playgroud)

  • `raise`在这里没有做任何事情,因为`@ object.save!`已经引发了一个错误.删除`raise除非`,它仍然有效. (5认同)

shi*_*ara 6

为什么提出异常而不仅仅是检查是否保存?

unless object.save
  object.errors
end
Run Code Online (Sandbox Code Playgroud)