23

Rails 中有什么方法可以让 ENV 重新加载“lib”文件而无需重新启动服务器?我正在使用“lib”模块中的一些类。但是,为了查看我的更改,我每次都必须重新启动服务器。我猜这是 Rails 的工作方式,但在开发库文件和/或插件时非常乏味。

当然,我要解决这个错误....?

最好的

编辑 1

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

4

3 回答 3

14

对于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>'
于 2012-06-08T18:40:57.783 回答
-1
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

于 2011-12-21T06:52:49.093 回答
-3

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

config.reload_plugins = true

发展.rb

于 2012-05-09T21:04:18.470 回答