0

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

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

上面的方法似乎不起作用

4

1 回答 1

2

我不确定 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
于 2019-06-04T13:05:54.540 回答