Rails 5 - Пользовательская проверка из StripeError - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть сервис, который работает с Stripe API.У меня есть этот обработчик для подписки, которую не удается создать.

    rescue Stripe::StripeError => e
        subscription.errors[:base] << e.message
    end

Однако я не совсем уверен, как создать проверку для модели с этим сообщением.Прямо сейчас я сохраняю подписку и затем пытаюсь перенаправить обратно в форму, если существуют ошибки.Но, похоже .save сбрасывает ошибки, поэтому я не могу выполнить перенаправление.

Похоже, что добавление пользовательской проверки здесь является правильным способом справиться с этим.

1 Ответ

0 голосов
/ 27 сентября 2018

В Rails 5 вы должны явно бросить abort, чтобы остановить цепочку обратного вызова.Добавьте throw(:abort) в свой блок восстановления, чтобы предотвратить сохранение экземпляров, вызывающих Stripe::StripeError.

rescue Stripe::StripeError => e
    subscription.errors[:base] << e.message
    throw(:abort)
end
...