Как Rails 3 загружает слой модели в рабочем режиме и разрешает зависимости модели? - PullRequest
1 голос
/ 13 февраля 2012

Другими словами, работает ли он так же, как в режиме разработки, но кэширует классы по мере необходимости?Или все модели загружены заранее?

Если последнее, как Rails узнает о загрузке модели, которая является зависимостью (другой модели), перед моделью, которая зависит от нее?

I 'Хотелось бы узнать, чтобы я мог оценить, насколько возможно загрузить модели Rails в ванильный проект Ruby без использования скрипта Rails.

1 Ответ

1 голос
/ 13 февраля 2012

Занятия обязательны заранее. Rails в основном делает require_dependency на всем в config.eager_load_paths, в алфавитном порядке ( см. Здесь ).

require_dependency является частью Active Support и находится в двух словах: требуется / требуется, но он интегрируется с отслеживанием зависимостей Active Support. Если во время этого процесса рельсы сталкиваются с чем-то, что еще не загружено (например, если A был подклассом B), то обычные хуки const_missing сработают и загрузят b.rb.

Вы должны иметь возможность настроить Active Support, как это делает rails, и вызывать те же методы из вашего проекта, не связанного с rails.

...