这是典型config/environments/*.rb
文件的开始方式:
MyApp::Application.configure do
config.cache_classes = false
...
end
传递给的块configure
取消引用config
显然未绑定的符号。这在技术上是如何工作的?块/Proc/lambda 中使用的符号应该在其声明的上下文中绑定,而不是在调用站点的动态范围内解析。
一个相关的问题是,该Application.configure
方法究竟是在哪里声明的?它不在application.rb
,engine.rb
或railtie.rb
中。也许如果我设法找到这种方法,我就会找到我主要问题的答案。
同样相关的是,我已经非常详细地研究了Rails 初始化过程,我什至找不到config/environments/*.rb
文件的提及。如果我知道初始化过程如何处理这些文件,那可能会对此有所了解。