这个问题已经在这里有一个答案:
- 如何让我的代码中的lib /自动重新加载该文件的变化是什么时候? 4个回答
是否有任何Rails的方式有ENV重载“LIB”文件,而无需重新启动服务器? 我有一些类,我有一个模块内的“LIB”工作。 然而,为了看到我的变化,我必须每次都重新启动服务器。 我猜这是Rails的目的是工作的方式,但开发库文件和/或插件的时候那是相当繁琐的。
当然,我要对此错误....?
最好
编辑1
无论答案1 2也为我工作。 相反,我提交了从利用该模块的控制器错误。 仅供参考,我在我的“的lib / xmlitems”目录下的3个文件。 我试图加载该子目录,然后我引用的单个文件“要求”所有其他文件。 我是不是单独加载所有的文件?
为Rails 3和Rails 4.0,变化在@ txwikinger的答案给出的说明。 在您的环境/ development.rb文件,添加行:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << '<my modules in lib>'
module ActsAsReloadable
def self.included(base)
ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
end
end
要使用它,只是include ActsAsReloadable
在你的lib / *文件,并添加config.autoload_paths += %W(#{config.root}/lib)
中config/application.rb
有一个简单的方法:只需添加
config.reload_plugins = true
到development.rb
文章来源: (Rails) Reloading “lib” files without having to restart server…? [duplicate]