递归包含所有模型子目录

发布于 2024-12-09 17:49:24 字数 263 浏览 1 评论 0原文

如何递归加载 models 和 lib 目录中的所有目录?在 application.rb 中,我有以下几行:

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')]

但它们似乎只添加了一层模型和 lib 子目录。

谢谢

How do you load all directories recursively in the models and lib directories? In application.rb, I have the lines:

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')]

but they only seem to add one level of model and lib subdirectories.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫七 2024-12-16 17:49:24

这应该会有所帮助

 Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"]

享受! (:

更新:

很好的问题,上面发布的例子我只是参考了我最近的项目。

经过一些测试,我有了更好的理解,这很棒。

主要的区别当然不是 File 的 join 方法,而是 config.root /Rails.root

在“**”之后尾随“/”是有意义的。

第一个在通配时仅匹配目录。
第二个对话以递归方式进行。

对于你的情况,这也可能是合适的

Dir[ Rails.root.join('app', 'models', '**/') ]

this should be helpful

 Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"]

enjoy! (:

Update:

Excellent question, posting example above i have simply referred to my recent project.

After making some tests, better understanding comes to me and it is great.

The main difference is of course neither in join method of File not config.root / Rails.root

Trailing '/' after '**' makes sense.

First one talks to match only directories when globbing.
Second one talks do it recursively.

In your case this one could be also appropriate

Dir[ Rails.root.join('app', 'models', '**/') ]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文