1

控制器、模型等从 active_support/dependencies.rb 加载。但是通过控制器和模型并要求dependencies.rb加载它们中的每一个的代码在哪里呢?

4

1 回答 1

1

如果您将以下代码放在控制器文件中(最好在类之外):

Rails.logger.info("*"*80)
Rails.logger.info(caller)
Rails.logger.info("*"*80)

并在生产模式下启动您的应用程序,您可以看到导致控制器被急切加载的初始化调用的完整堆栈跟踪。在开发中,控制器不是预先加载的。

最关键的一行检查 Rails 配置并决定是否预先加载所有文件。

railties-3.2.11/lib/rails/application/finisher.rb:53

这称为 railties eager_load!方法

于 2013-02-03T08:54:33.893 回答