Monkeypatch модели на основе драгоценных камней в приложении, обеспечить перезагрузку в Dev, не замедляя приложение для сканирования? - PullRequest
2 голосов
/ 06 января 2012

Я определяю целую кучу моделей в геме, которые я собираю в проект Rails.Я хочу быть в состоянии обезопасить эти классы моделей с помощью кода, который хранится в файлах в app / models и перезагружать app / models / * при каждом запросе, как обычно.

Я фактически решил вышеупомянутую проблему.Проблема, с которой я столкнулся сейчас, заключается в том, что решение делает мое приложение медленным - экраны загружаются в режиме разработки по сравнению с секундой или двумя раньше, чем 30-40 секунд.Вот что у меня теперь есть в инициализаторе:

model_init = lambda{
  path = File.expand_path(File.dirname(__FILE__) + "../../../app/models")

  Dir.glob("#{path}/*.rb").each do |path|
    require path
  end
}

ActionDispatch::Callbacks.to_prepare(&model_init)

Может кто-нибудь дать информацию о том, как я могу ускорить это?Я на Rails 3.1.3, но если active_reload в 3.2.0-rc1 может решить эту проблему, я рад обновлению.Заранее спасибо за любую помощь!

1 Ответ

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

В Rails 3.1 есть известная ошибка - каждый ресурс перекомпилируется по запросу. Поэтому, если у вашего приложения много ресурсов, вы получаете медленные ответы в режиме разработки. Это исправлено в 3.2.

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