2

ブログ アプリケーションの environment.rb で次の行のソースを見つけたい

Blog::Application.initialize!

見つかったら初期化!メソッドは、ソース コードの 1 か所でのみ定義されます。

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 クラスで明らかに呼び出し可能な場合に、未定義のメソッドを取得するのは奇妙です。このコードを理解するのを手伝ってください。

4

1 に答える 1