如何在开发模式下为每个请求重新加载 gem? [英] How to reload a gem on every request in Development mode?
本文介绍了如何在开发模式下为每个请求重新加载 gem?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 Rails 应用程序,它使用我正在积极开发的 gem.如何指示应用在每次请求时重新加载 gem?
解决方案
这个解决方案 几乎可以工作,但出于某种原因,我必须将其放入 application.rb
而不是 environments/development.rb
否则无法识别 autoload_paths.>
我添加了一些额外的东西来自动获取路径.
如果 Rails.env.development?reload_gems = %w(my_gem other_gem) # 应该自动重新加载的宝石名称config.autoload_paths += Gem.loaded_specs.values.inject([]){ |a,gem|a += gem.load_paths 如果 reload_gems.include?宝石名称;一种 }需要active_support/dependencies"ActiveSupport::Dependencies.explicitly_unloadable_constants += reload_gems.map { |gem|gem.classify }结尾
本地 gem 可以用 gem 'my_gem', :path => 添加'../my_gem'
I've got a Rails app which uses a gem I'm actively developing. How can I instruct the app to reload the gem on every request?
解决方案
This solution almost works but for some reason I have to put it into application.rb
and not in environments/development.rb
otherwise the autoload_paths are not recognized.
I added some additional stuff which fetches the paths automagically.
if Rails.env.development?
reload_gems = %w(my_gem other_gem) # names of gems which should autoreload
config.autoload_paths += Gem.loaded_specs.values.inject([]){ |a,gem| a += gem.load_paths if reload_gems.include? gem.name; a }
require 'active_support/dependencies'
ActiveSupport::Dependencies.explicitly_unloadable_constants += reload_gems.map { |gem| gem.classify }
end
Local gems can be added with gem 'my_gem', :path => '../my_gem'
这篇关于如何在开发模式下为每个请求重新加载 gem?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文