Вам нужно передать символ в autoload
(возможно, опечатку в вашем вопросе) и вызвать его в родительской константе, например:
App.autoload :ModuleA, "app/module_a"
Обратите внимание, что это работает и для вложенных уровней. Скажите, что в app/module_a
у вас есть:
module App::ModuleA
autoload :Inner, "path/to/inner"
end
Когда Ruby встречает App::ModuleA::Inner
, он сначала попытается получить доступ к ModuleA
, удастся автоматически загрузить его, и только затем попытается Inner
, что также успешно, потому что теперь он знает, куда его загружать.