2015-09-10 4 views

ответ

2

Когда вы устанавливаете новые драгоценные камни, вам нужно будет перезапустить сервер Rails, чтобы забрать их, потому что их пути нагрузки настраиваются в boot.rb, который обрабатывается при запуске приложения:

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

В стандартном приложении Rails есть Gemfile, который объявляет все зависимости приложения. config/boot.rb устанавливает ENV ['BUNDLE_GEMFILE'] в местоположение этого файла. Если Gemfile существует, требуется пакет/настройка. Требование используется Bundler для настройки пути загрузки для зависимостей Gemfile.

(от the reference)

Если пути нагрузки не установлен, Rails не знает, где загрузить ваши драгоценные камни от.

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

Если у вас установлен плагин/gem и его изменение (скажем, вы его разрабатываете), плагины и их код не перезагружаются, поэтому вам необходимо вручную перезапустить сервер Rails, чтобы обновления были выбраны вверх.

Это поведение задается переменной конфигурации config.reload_plugins, которая по умолчанию равна false для лучшей производительности, поскольку обычно вы меняете код приложения, и плагины не изменяются. Если вы установите его на truedevelopment.rb, так как это необходимо только в среде dev), Rails должен перезагрузить весь установленный код плагина при каждом запросе. Конечно, каждый запрос будет длиться дольше, потому что нужно перезагрузить больше кода.

0

Обычно вы только перезагружаете сервер, когда вы кодируете возиться с сервером, например, путем перенаправления или завершения сеанса или переключения базы данных или чего-либо в этом направлении. Если ваши плагины влияют на сервер, вам необходимо перезагрузить его, чтобы полностью реализовать плагин. Возможно, что конкретный подключаемый модуль, возможно, не повлиял на сервер.