Я использую наследование для извлечения общего поведения в родительский класс.Вот мой родительский класс BaseService:
class BaseService
def initialize(data, failure_strategy)
@data = data
@failure_strategy = failure_strategy
end
def create
return if associated_model.find_by(id: @data['id'])
# insert specific code from child class CREATE method implementation here
rescue => exception
@failure_strategy.rescue(exception)
end
private
def associated_model
self.class.to_s.delete("EventsService").constantize
end
end
В основном я реализую различные стратегии отказа в случае возникновения исключения.Однако я хотел бы, чтобы конкретный код из моей реализации дочернего класса create
был вставлен между двумя фрагментами кода внутри моей реализации родительского класса create ...
return if associated_model.find_by(id: @data['id'])
# insert specific code from child class CREATE method implementation here
rescue => exception
@failure_strategy.rescue(exception)
Каков правильный способреализовать такое поведение в ruby?