(Rails)重新加载"lib"文件而不必重新启动服务器......?

hum*_*der 23 ruby-on-rails file reload

在Rails中有没有办法让ENV重新加载"lib"文件而不必重新启动服务器?我正在使用"lib"中的模块中的一些类.但是,为了查看我的更改,我必须每次都重新启动服务器.我猜这是Rails的工作方式,但在开发库文件和/或插件时非常繁琐.

当然,我正在犯这个错误......?

最好

编辑1

答案1和2都没有为我工作.相反,我收到了使用模块的控制器的错误.仅供参考,我的"lib/xmlitems"目录中有3个文件.我试图加载该子目录,然后我引用了"需要"所有其他文件的单个文件.我要单独加载所有文件吗?

Jel*_*Cat 15

对于Rails 3Rails 4.0,请更改@ txwikinger的答案中给出的说明.在您的environment/development.rb文件中,添加以下行:

ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << '<my modules in lib>'
Run Code Online (Sandbox Code Playgroud)

  • 这允许您在lib目录中重新加载类,确认为rails 4.谢谢! (2认同)

cho*_*eat -1

module ActsAsReloadable
  def self.included(base)
    ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development'
  end
end
Run Code Online (Sandbox Code Playgroud)

要使用它,只需include ActsAsReloadable在您的 lib/* 文件中config.autoload_paths += %W(#{config.root}/lib)添加config/application.rb