Rails有没有办法让ENV重新加载“lib”文件而不必重新启动服务器?我正在使用“lib”中的模块中的一些类。但是,为了查看我的更改,我必须每次都重新启动服务器。我猜这是Rails的工作方式,但在开发库文件和/或插件时非常繁琐。
当然,我正在犯这个错误......?
最佳
答案1和2都不适合我。相反,我收到了使用模块的控制器的错误。仅供参考,我的“lib / xmlitems”目录中有3个文件。我试图加载该子目录,然后我引用了“需要”所有其他文件的单个文件。我要单独加载所有文件吗?
答案 0 :(得分:14)
对于 Rails 3 和 Rails 4.0 ,请更改@ txwikinger答案中给出的说明。在您的environment / development.rb文件中,添加以下行:
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << '<my modules in lib>'
答案 1 :(得分:-1)
module ActsAsReloadable
def self.included(base)
ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
end
end
要使用它,只需在您的lib / *文件中include ActsAsReloadable
并在config.autoload_paths += %W(#{config.root}/lib)
config/application.rb
答案 2 :(得分:-3)
有一种更简单的方法:只需添加
config.reload_plugins = true
to development.rb