Ответить на ваш вопрос легко, добавив несколько операторов puts
в ваше Rails-приложение. (Кажется, что многие люди неохотно копаются и делают это, но я действительно рекомендую это!) Итак, одним лишь экспериментом и наблюдением, вот порядок вещей, которые вы упомянули:
boot.rb
config/initializers/*
routes.rb
Вот немного подробнее:
1. boot.rb
Это загружает драгоценные камни приложения, используя упаковщик:
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. config/initializers/*
Они запускаются в алфавитном порядке.
Если вам интересно, что вызывает это, взгляните на engine.rb в исходном коде railties . (Полезно знать, что Приложение Rails является подклассом Rails Engine.)
initializer :load_config_initializers do
config.paths["config/initializers"].existent.sort.each do |initializer|
load(initializer)
end
end
3. routes.rb
Наблюдением я вижу, что чертеж маршрута (спецификация) происходит следующим.
Но рассмотрение деталей более сложное, поэтому, если вам интересно, я бы прочитал SO: Управление порядком загрузки маршрутов из двигателей и, возможно, взглянем на инициализатор: add_routing_paths в engine. гь .