我试图弄清楚 rails 3 的初始化。而且我知道每个应用程序都会调用 environment.rb 中的以下函数来初始化整个应用程序:
MyApp::Application.initialize!
从它我们应该期待初始化!是 Rails::Application 的类方法。但是在我红了源代码之后,我发现改为初始化!是一个实际调用的实例方法:
def initialize!(group=:default) #:nodoc:
raise "Application has been already initialized." if @initialized
run_initializers(group, self)
@initialized = true
self
end
那么为什么要调用实例方法,尽管我们期望一个类方法呢?有像方法委托这样的技巧吗?