gpt4 book ai didi

ruby - 自动加载命名空间/子模块

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:20 27 4
gpt4 key购买 nike

我在 ruby​​ 中使用模块作为命名空间。我将如何进行自动加载...类似 autoload :"App::ModuleA", 'app/module_a 的东西不会引发“必须是常量名称”错误?

最佳答案

您需要将一个符号传递给 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,这也成功了,因为它现在知道在哪里自动加载它。

关于ruby - 自动加载命名空间/子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com