【问题标题】:Rails 5 - Custom validation from StripeErrorRails 5 - 来自 StripeError 的自定义验证
【发布时间】:2018-09-27 04:41:30
【问题描述】:

我有一个使用 Stripe API 的服务。我有这个处理程序用于创建失败的订阅。

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

但是,我不太确定如何使用该消息在模型上创建验证。现在,我保存订阅,然后在存在错误时尝试重定向回表单。但是,.save 似乎清除了错误,所以我无法执行重定向。

似乎在这里添加自定义验证是处理此问题的正确方法。

【问题讨论】:

  • 我不确定您正在寻找什么样的验证,但如果您不希望保存引发条带错误的实例,请尝试在您的救援块中添加 throw(:abort)(之后添加错误)。

标签: ruby-on-rails ruby validation ruby-on-rails-5 activemodel


【解决方案1】:

在 Rails 5 中,您必须显式抛出 abort 以停止回调链。在救援块中添加throw(:abort) 以防止引发Stripe::StripeError 的实例被保存。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多