(Rails)的重装“LIB”文件,而无需重新启动服务器...? [重复]((Rails) Re

2019-06-25 15:54发布

这个问题已经在这里有一个答案:

  • 如何让我的代码中的lib /自动重新加载该文件的变化是什么时候? 4个回答

是否有任何Rails的方式有ENV重载“LIB”文件,而无需重新启动服务器? 我有一些类,我有一个模块内的“LIB”工作。 然而,为了看到我的变化,我必须每次都重新启动服务器。 我猜这是Rails的目的是工作的方式,但开发库文件和/或插件的时候那是相当繁琐的。

当然,我要对此错误....?

最好

编辑1

无论答案1 2也为我工作。 相反,我提交了从利用该模块的控制器错误。 仅供参考,我在我的“的lib / xmlitems”目录下的3个文件。 我试图加载该子目录,然后我引用的单个文件“要求”所有其他文件。 我是不是单独加载所有的文件?

Answer 1:

Rails 3Rails 4.0,变化在@ txwikinger的答案给出的说明。 在您的环境/ development.rb文件,添加行:

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


Answer 2:

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



Answer 3:

有一个简单的方法:只需添加

config.reload_plugins = true

到development.rb



文章来源: (Rails) Reloading “lib” files without having to restart server…? [duplicate]