Плагин автоматической перезагрузки Rails в режиме разработки - PullRequest
2 голосов
/ 28 октября 2009

Я пытаюсь использовать плагин. Я разрабатываю автозагрузку каждый раз, когда меняю код, эмулируя ту же автоматическую перезагрузку, которая обычно происходит в режиме разработки Rail. Мой плагин - это в первую очередь модуль микширования ActiveRecord Я перепробовал все предложения, которые мне удалось найти в связанных поисках Google. Ничего еще не сработало.

В init.rb моего плагина:

require 'activesupport' unless defined? ActiveSupport
require 'activerecord' unless defined? ActiveRecord

if RAILS_ENV == 'development'
    ActiveSupport::Dependencies.load_once_paths.delete lib_path
    ActiveSupport::Dependencies.load_once_paths.delete File.join(lib_path, 'crowd_compass', 'publisher.rb')

    ActiveSupport::Dependencies.load_paths << lib_path
    ActiveSupport::Dependencies.load_paths << File.join(lib_path, 'crowd_compass', 'publisher.rb')
end

ActiveRecord::Base.send(:include, CrowdCompass::Publisher)

Просматривая журнал изменений в rails, я заметил функцию автоматической перезагрузки всех плагинов.

config.reload_plugins = true if RAILS_ENV == 'development'

Это не сработало, как я ожидал, когда я добавил его в свой файл conf / environment.rb

Мой плагин структурирован, поэтому все файлы автоматически загружаются в каталог namespace =>. Я сделал это, чтобы избежать использования «require», так как я думал, что require запрещает автоматическую перезагрузку моего плагина.

Я выполняю всю свою работу в режиме разработки через консоль rails, и я не знаю, ведет ли это себя иначе, чем работа через mongrel (или как веб-сервер).

Плагин работает, как и ожидалось, но мне приходится перезагружать каждый раз, когда я делаю какие-либо изменения в коде. Кто-нибудь знает способ перезагрузки плагинов?

1 Ответ

1 голос
/ 28 октября 2009

Консоль определенно не работает как дворняга. Все методы, которые вы используете, предназначены для перезагрузки при каждом запросе, что сродни каждому запуску консоли.

Невозможно перезагрузить код в консоли без вызова reload!.

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