控制器、模型等是从active_support/dependencies.rb加载的。 但是,通过控制器和模型并要求 dependencies.rb 加载它们中的每一个的代码在哪里?
如果将
以下代码放在控制器文件中(最好在类之外):
Rails.logger.info("*"*80)
Rails.logger.info(caller)
Rails.logger.info("*"*80)
在生产模式下启动应用时,您可以看到导致控制器被预先加载的初始化调用的完整堆栈跟踪。在开发中,控制器不会急于加载。
最关键的一行检查 Rails 配置并决定是否预先加载所有文件。
railties-3.2.11/lib/rails/application/finisher.rb:53
哪个叫铁轨eager_load!