在after_save中引发ActiveRecord :: Rollback不会回滚保存

时间:2019-07-18 18:36:53

标签: ruby-on-rails callback

在after_save方法中,我有:

def sync
    status = Timeout::timeout(1) {
      sleep(2)
    }

  rescue StandardError => e
    puts "inside rescue"
    errors[:base] << e.message.to_s
    ApsLogger.fatal(e)
    raise ActiveRecord::Rollback
    # raise ActiveRecord::RecordInvalid.new(self)
  end

我看到inside rescue被打印出来,但是记录仍在数据库中被修改。

我尝试过raise ActiveRecord::RecordInvalid.new(self),但仍然无法正常工作。

我希望看到数据库中的记录没有被修改,并且UI中会显示一条错误消息。

0 个答案:

没有答案