【发布时间】:2020-04-08 21:38:12
【问题描述】:
我知道lib/ 目录可以很容易地添加到autoload_paths 和eager_load_paths。但我不太明白为什么lib/ 中的文件默认不自动加载或急切加载?
不幸的是,我在任何地方都找不到简单的答案,所以如果有人能简单地向我解释一下,我将不胜感激!
【问题讨论】:
我知道lib/ 目录可以很容易地添加到autoload_paths 和eager_load_paths。但我不太明白为什么lib/ 中的文件默认不自动加载或急切加载?
不幸的是,我在任何地方都找不到简单的答案,所以如果有人能简单地向我解释一下,我将不胜感激!
【问题讨论】:
因为没有将需要自动加载的文件放入 lib 的 Rails 约定。 lib 用于驻留在 lib/tasks 的 rake/thor 任务和其他任务。
您的应用程序特定文件应位于app。如果您发现自己想在lib 中添加一些东西,它可能属于app 中的某个位置,或者在一个Gem 中。
【讨论】:
app 下的任何内容都将被自动加载。您可以将app/lib 用于不适合默认目录的内容,或者组成一个新目录。比如我把服务对象放到app/services.