【发布时间】:2013-11-05 11:38:40
【问题描述】:
我想在我的博客应用程序的 environment.rb 中找到以下行的来源
Blog::Application.initialize!
如果发现初始化!方法只在源代码的一处定义。
railties/lib/rails/application.rb
def initialize!(group=:default) #:nodoc:
raise "Application has been already initialized." if @initialized
但是它是一个实例方法。
我在 rails 控制台做了一些实验:
Blog::Application.initialize! # => Application has been already initialized
Blog::Application.method(:initialize!) # => undefined method for Class
Blog::Application.instance_methods.include?(:initialize!) # => true
奇怪的是,当 initialize! 显然可以在 Application 类上调用时,我们得到了一个未定义的方法。请帮助理解此代码。
【问题讨论】:
-
如果是
Blog::Application的实例方法,则无法调用Blog::Application.initialize!。您的描述自相矛盾。 -
@sawa github.com/rails/rails/blob/master/guides/code/getting_started/… 或尝试创建一个新的 Rails 应用程序。
-
不,我不会。我不会听从你的命令。
标签: ruby-on-rails ruby