如何在模型和lib目录中递归加载所有目录?在application.rb中,我有以下几行:
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')]
但它们似乎只添加了一个级别的模型和lib子目录。
由于
答案 0 :(得分:36)
这应该是有帮助的
Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"]
享受! (:
更新
很好的问题,上面发布的例子我简单地提到了我最近的项目。
经过一些测试后,我会得到更好的理解,这很棒。
主要的区别当然是在File not config.root / Rails.root
的连接方法中'**'之后的尾随'/'是有意义的。
第一个用于在globbing时匹配仅目录。 第二个会谈是递归。
在你的情况下,这个也可能是合适的
Dir[ Rails.root.join('app', 'models', '**/') ]