Я изучаю рельсы и получил это небольшое приложение для учебных целей.
Это структура моей папки, я пытаюсь настроить ее для подхода DDDi sh:
Это мой launcher_controller:
module Web
class LauncherController < ApplicationController
def launch
requestBody = params[:launcher]
render json: requestBody
end
end
end
И route.rb:
Rails.application.routes.draw do
scope module: 'web' do
post 'launcher/launch', action: 'launch', controller: 'launcher'
end
end
Я уже добавил сеть и путь контроллеров к autoload_paths для zeitwerk для загрузки файлов в application.rb:
config.autoload_paths << config.root.join('app', 'web')
config.autoload_paths << config.root.join('app', 'web', 'controllers')
Я могу запустить сервер rails up, но когда я вызываю действие контроллера, я получаю:
ActionController :: RoutingError (неинициализированная константа Web)
Мне кажется, что это должно быть что-то действительно простое, но я не могу найти проблему ... Я слежу за документами по https://guides.rubyonrails.org/routing.html#specifying -a-controller-to-use
Итак, какую базовую концепцию c я здесь упускаю? Разве я не определяю модуль в файле launch_controller.rb?
EDIT
Хорошо, основываясь на первом ответе, я изменил модуль на Web в определении модуля и 'web' на route.rb.
Теперь я получил
ActionController :: RoutingError (неинициализированная константа Web)
Я не знаю если это может быть проблемой, но это приложение только для веб-API. Я сгенерировал проект с помощью следующей команды:
rails new tracker-launcher -M -O -J -T --api