Я пытаюсь использовать плагин. Я разрабатываю автозагрузку каждый раз, когда меняю код, эмулируя ту же автоматическую перезагрузку, которая обычно происходит в режиме разработки 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 (или как веб-сервер).
Плагин работает, как и ожидалось, но мне приходится перезагружать каждый раз, когда я делаю какие-либо изменения в коде. Кто-нибудь знает способ перезагрузки плагинов?