这有效(带有正斜杠):
config.autoload_paths += Dir[Rails.root.join("lib", "**/")]
这不起作用(没有斜杠):
config.autoload_paths += Dir[Rails.root.join("lib", "**")]
为什么?
答案 0 :(得分:5)
尾部斜杠表示Dir[]
它应该递归列出目录。
让我们深入了解一下。
Rails.root.join("lib", "**")
返回#{Rails.root}/lib/**
的路径,而
Rails.root.join("lib", "**/")
返回#{Rails.root}/lib/**/
的路径。
然后将其传递给Dir[]
。 documentation中的**
表示它以递归方式匹配目录。但是没有尾随斜杠,它似乎与*
具有相同的行为。如果您执行**/*.rb
之类的操作,则列出递归,所有以.rb
结尾的文件。所以你真正用尾部斜杠指定的是,你想要搜索目录,因为它们总是以/
结尾。