Я пытаюсь поднять некоторые исключения в своем приложении и обнаружил ошибку, которая сводит меня с ума.
Вот мой код клиента:
class PaymentGateway::CreateSubscriptionService < PaymentGateway::Service
def run
begin
Subscription.transaction do
create_client_subscription
self.subscription = create_subscription
self.success = true
end
rescue PaymentGateway::CreateCustomerService,
PaymentGateway::CreatePlanService,
PaymentGateway::ClientError => e
raise PaymentGateway::CreateSubscriptionServiceError.new(
ERROR_MESSAGE,
exception_message: e.message)
end
end
Ошибка моего сервиса:
#services/payment_gateway/service_error.rb
class PaymentGateway::ServiceError < StandardError
attr_reader :exception_message
def initialize(message, exception_message: )
super(message)
@exception_message = exception_message
end
end
Мой клиент его:
class PaymentGateway::Client
attr_accessor :external_client
def initialize(external_client: PaymentGateway::StripeClient.new)
@external_client = external_client
end
def method_missing(*args, &block)
begin
external_client.send(*args, &block)
rescue => e
raise PaymentGateway::ClientError.new(e.message)
end
end
end
class PaymentGateway::CreateCustomerServiceError < PaymentGateway::ServiceError
end
Когда я запускаюмой код, это я получаю эту ошибку:
ArgumentError в SubscriptionController # создать пропущенное ключевое слово: exception_message Извлеченный источник (вокруг строки # 4):
attr_reader :exception_message
def initialize(message, exception_message: )
Что я здесь не так делаю?