我想弄清楚rails 3的初始化。我知道每个应用程序都会在environment.rb中调用以下函数来初始化整个应用程序:MyApp :: Application.initialize!打电话?
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
那么,为什么被称为实例方法,虽然我们预计一个类的方法?有没有像方法委托或其他一些技巧?
也许这可以帮助我在寻找一个类似的问题,到那个初始化!方法是。 http://climber2002.github.io/blog/2014/08/26/digging-rails-how-rails-initializes-itself-part-2/回到第一部分,如果你对现在是什么应用程序有疑问,而不是应用程序类。只与感兴趣的部分有关的漂亮列表非常棒。看看Rails MyApp的一个实例现在是如何使用一个实例变量的,我们可以将它发送给我们路径中的任何方法。感谢您的提问,因为这是一个很好的问题,奇怪的是,这次只有一个答案。 – 2015-09-17 16:20:12