将服务对象中的错误冒泡到控制器

时间:2018-03-07 09:04:56

标签: error-handling ruby-on-rails-5

我有一个服务对象,它调用外部服务(Service :: Customer),如下面的

class CustomerService
  def initialise(params)
    @email = params[:email]
  end

  def save_customer
    Service::Customer.create(@email)
  end
end

我的控制器包含一个创建方法

class CustomersController < ApplicationController
  def create
    new_customer = CustomerService.new({email: params[:email]})
    new_customer.save_customer
  rescue Service::CustomerCreationError => e
    flash[:error] = e.message
    redirect_to new_customer_path
  end
end

我的问题是我可以将错误处理移动到服务对象的最佳方法是什么?

0 个答案:

没有答案