1

在我的 Rails4 应用程序中,我在我的应用程序中创建了一个Services文件夹,其中包含一个StripeCommunicator.rb类 - 这(顾名思义)负责与 Stripe 的支付处理服务进行通信。

我想知道如何从这个类中捕获错误并将它们返回到准备在视图中使用的控制器。

在我的模型中的旧设置中(在使用服务对象之前),我捕获了如下错误:

rescue Stripe::CardError => e
  errors.add :base, e.message
  false

但是这种方法不再有效,我不确定合适的解决方案???

4

1 回答 1

2

使服务对象表现为 ActiveModel 对象。如果您只想要 ActiveRecord 对象的验证和错误行为,您可以使用 ActiveModel::Validations

class ServiceObject
  include ActiveModel::Validations
end

你可以很高兴地做到

errors.add :base, e.message

或者

validates_presence_of :first_name, :last_name

有关ActiveModel::Validations的更多信息,请参阅此博客

于 2013-10-08T19:21:57.247 回答