Rails 修复特定错误并发送到 rollbar

Rails rescue specific error and send to rollbar

在我的调用方法中,我想使所有优惠过期,但为此,我发现了两个特定错误(验证和可能的 AASM)并从中解救出来。两者都应该发送到Rollbar。

def call
  all_to_expire.each do |offer|
    offer.expire!(actor: self)
  rescue StandardError => e
    Rollbar.error(e)
  end
end

上面的方法好像不行

我不确定Ruby是否理解这种块结构。我会将其重写为:

def call
  all_to_expire.each do |offer|
    begin
      offer.expire!(actor: self)
    rescue AASM::InvalidTransition, ActiveModel::ValidationError => e
      Rollbar.error(e)
    end
  end
end