我正在使用如下模块创建一个用于版本控制Rails应用程序的API:
Module Api
Module V1
Controller goes here
end
end
Module Api
Module V2
Controller goes here
end
end我想知道最新的版本。我以为我可以通过查看Api.constants来获得它,但情况似乎并非如此,因为我得到了一个空数组,如下所示:
Loading development environment (Rails 3.2.12)
irb(main):001:0> Api
=> Api
irb(main):002:0> Api.constants
=> []但是,如果我首先直接调用Api::V1,它似乎可以工作:
Loading development environment (Rails 3.2.12)
irb(main):001:0> Api
=> Api
irb(main):002:0> Api.constants
=> []
irb(main):003:0> Api::V1
=> Api::V1
irb(main):004:0> Api.constants
=> [:V1]有没有一种方法可以在不提前访问的情况下获得所有子模块?
发布于 2013-03-18 18:03:45
这是工作中的自动加载。Api::V1只有在被引用后才会被加载。这就是为什么在第一种情况下会得到空数组。
您可以调整您的应用程序以急切地加载类。更多信息请点击这里:Configuring Rails。
https://stackoverflow.com/questions/15474024
复制相似问题