1

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

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

在我的旧体制在我的模型我困象这样的错误(之前使用服务对象):

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

但这种做法不再可行,我不知道一个合适的解决方案???

回答

3

使Service对象像ActiveModel对象一样工作。如果你只是想验证和ActiveRecord对象的错误行为,你可以只使用::加载ActiveModel验证

class ServiceObject 
    include ActiveModel::Validations 
end 

而且你可以快乐地做

errors.add :base, e.message 

validates_presence_of :first_name, :last_name 

参考到这个博客关于ActiveModel::Validations

+0

的更多信息,你能否澄清我会使我的服务对象像ActiveModel一样行动 - 假设我想要的比验证更多一点? – tommyd456

+0

你有机会看我在我的回答中链接到的页面吗?这里有关于ActionModel中可以使用的其他模块的所有信息。 – usha

+0

对不起是的 - 我在最后使用了< tommyd456