代码之家  ›  专栏  ›  技术社区  ›  Dex

Rails 3初始化顺序

  •  15
  • Dex  · 技术社区  · 14 年前

    我想找到的主要东西是:

    1) 什么时候装宝石?

    2) 配置/初始化程序/*何时加载?

    3) 何时处理routes.rb中的命名路由?

    4 回复  |  直到 14 年前
        1
  •  9
  •   johnmcaliley    10 年前

    查看这个关于初始化过程的非常详细(和冗长)的文档:

    http://guides.rubyonrails.org/initialization.html

        2
  •  13
  •   Community CDub    7 年前

    回答你的问题很容易 puts

    1. boot.rb
    2. config/initializers/*
    3. routes.rb

    下面是一些更详细的信息:

    一。

    这将使用bundler加载应用程序gems:

    require 'rubygems'
    # Set up gems listed in the Gemfile.
    ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
    require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
    

    2。

    它们按字母顺序排列。

    如果你想知道是什么触发了这个,看看 engine.rb in the railties source code

    initializer :load_config_initializers do
      config.paths["config/initializers"].existent.sort.each do |initializer|
        load(initializer)
      end
    end
    

    三。 路线.rb

    但看细节更复杂,所以如果你感兴趣,我会读 SO: Controlling routes loading order from Engines the :add_routing_paths initializer in engine.rb .

        3
  •  2
  •   Outside_Box    8 年前

    我在Rails 3中启动了一个控制台,下面是命令:

    • script/rails
    • config/boot.rb
    • config/application.rb
    • config/environment.rb
    • config/initializers/*.rb (按字母顺序)
        4
  •  -5
  •   Sam å±±    14 年前

    1. 宝石
    2. 路线

    1) 我知道如何编辑gems的唯一方法是编辑源文件本身。此外,rails本身以及所有使用rails的东西都是一块宝石,所以我确信它们是首先加载的

    2) 初始化器可能是第二次加载,或者至少考虑到您提到的三件事,因为它们可能加载信息或模块,这些信息或模块与资源和关联进行路由。

    3) 消除过程


    不过,别当真:)