在我的Rails4应用程序中,我在我的应用程序中创建了一个包含StripeCommunicator.rb
类的服务文件夹 - 这(顾名思义)负责与Stripe的支付处理服务进行通信。
我想知道如何从此类中捕获错误并将它们返回到控制器,以备在视图中使用。
在我的模型中的旧设置中(在使用服务对象之前)我遇到了这样的错误:
rescue Stripe::CardError => e
errors.add :base, e.message
false
但这种方法不再适用,我不确定合适的解决方案???
答案 0 :(得分:3)
使Service对象的行为与ActiveModel对象相同。如果您只想从ActiveRecord对象获得验证和错误行为,您可以使用ActiveModel :: Validations
class ServiceObject
include ActiveModel::Validations
end
你可以高兴地做
errors.add :base, e.message
或
validates_presence_of :first_name, :last_name
的详情,请参阅此博客