如何解决Ruby中的PG :: NotNullViolation错误?

时间:2016-11-29 05:46:04

标签: ruby-on-rails ruby

我得到了ActiveRecord::StatementInvalid: PG::NotNullViolation: ERROR。谁能告诉我如何解救PG::NotNullViolation

begin
 x.save
rescue ActiveRecord::StatementInvalid
 puts "I get here"
end

但我想挽救确切的错误,我们有办法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用regexp错误消息

来执行此操作
begin
 x.save 
rescue ActiveRecord::StatementInvalid => e
  if e.message =~ /^PG::NotNullViolation/
    puts 'Error!!!'
  end
  raise
end

答案 1 :(得分:1)

当邮件不匹配时,您可能希望重新引发异常。否则,没有关于未处理异常的信息,可能会导致问题。

答案 2 :(得分:1)

rescue ActiveRecord::StatementInvalid => e if e.cause.is_a?(PG:: NotNullViolation) # do something end end