我在ruby中使用模块作为命名空间.我将如何进行自动加载...类似的东西autoload :"App::ModuleA", 'app/module_a不会引发"必须是常量名称"错误?
Mar*_*une 11
你需要传递一个符号autoload(可能是问题中的拼写错误),并在常量的父级上调用它,如:
App.autoload :ModuleA, "app/module_a"
Run Code Online (Sandbox Code Playgroud)
请注意,这也适用于嵌套级别.说app/module_a你有:
module App::ModuleA
autoload :Inner, "path/to/inner"
end
Run Code Online (Sandbox Code Playgroud)
当Ruby遇到时App::ModuleA::Inner,它将首先尝试访问ModuleA,通过自动加载成功,然后才尝试Inner,这也成功,因为它现在知道在哪里自动加载它.
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |