Rails 3 Порядок инициализации - PullRequest
15 голосов
/ 07 ноября 2010

Может кто-нибудь указать мне правильное направление для порядка, в котором создаются модули рельсов.

Основные вещи, которые я пытаюсь найти:

1) Когда загружаются драгоценные камни?

2) Когда загружаются config / initializers / *?

3) Когда обрабатываются именованные маршруты в rout.rb?

Ответы [ 4 ]

13 голосов
/ 16 июня 2012

Ответить на ваш вопрос легко, добавив несколько операторов puts в ваше Rails-приложение. (Кажется, что многие люди неохотно копаются и делают это, но я действительно рекомендую это!) Итак, одним лишь экспериментом и наблюдением, вот порядок вещей, которые вы упомянули:

  1. boot.rb
  2. config/initializers/*
  3. 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. гь .

9 голосов
/ 07 ноября 2010

Ознакомьтесь с этой безумно подробной (и длинной) частью документации по процессу инициализации:

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

2 голосов
/ 28 декабря 2012

Я запустил консоль в Rails 3 и вот порядок:

  • script/rails
  • config/boot.rb
  • config/application.rb
  • config/environment.rb
  • config/initializers/*.rb (в алфавитном порядке)
0 голосов
/ 07 ноября 2010

Я действительно не знаю, но логически в этом порядке

  1. драгоценные камни
  2. инициализаторы
  3. маршруты

1)Единственный способ, которым я знаю, как редактировать драгоценные камни, - это редактировать исходный файл.Более того, сами rails и в основном все с rails - это драгоценный камень, поэтому я уверен, что они загружаются первыми

2) Инициализаторы, вероятно, загружаются вторыми, или, по крайней мере, с учетом трех упомянутых вами вещей, потому что они могут загружать информацию илинужны модули, которые маршрутизируют с ресурсами и ассоциациями.

3) Процесс исключения


С точки зрения внутреннего порядка это, вероятно, abc

Не принимайте это всерьез, хотя:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...