Я пытаюсь создать приложение на основе пространства имен в Ruby с помощью Sinatra, но у меня есть проблема, которую я не понимаю.
Пример структуры:
. / api / v1 / service / app_service.rb:
module Api::V1::Service
class AppService
end
end
. / run.rb:
require 'sinatra'
require './api/v1/service/app_service'
, и в этом случае я получил ошибку «неинициализированная константа Api».
Если я использую обычное создание модуля, все в порядке:
module Api
module V1
module Service
class AppService
end
end
end
end
Я также испробовал плохое и уродливое решение, требуя файл, который предопределил каждый модуль:
. / beforefine.rb:
module Api
module V1
module Service
end
end
end
. / run.rb:
require 'sinatra'
require './predefine'
require './api/v1/service/app_service'
, но это не решение, потому что тесты rspe c запускаются с ошибкой при том же ошибка.
Есть ли решение для этого?