Ruby on rails 如何使lib/中的代码在文件更改时自动重新加载?

Ruby on rails 如何使lib/中的代码在文件更改时自动重新加载?,ruby-on-rails,Ruby On Rails,这是对此的后续行动。在开发过程中,每次在lib/中更改代码时,我都必须重新启动rails应用程序,以便代码更改生效。如何让这些代码像控制器、模型等一样自动重新加载?为什么不直接输入 load Rails.root + '/lib/your_lib.rb' 模块动作可重新加载 def自带(基本) ActiveSupport::Dependencies.explicitly_unloadable_constants对于Rails 3,将文章中给出的说明与@science的答案不同。在环境/deve

这是对此的后续行动。在开发过程中,每次在lib/中更改代码时,我都必须重新启动rails应用程序,以便代码更改生效。如何让这些代码像控制器、模型等一样自动重新加载?

为什么不直接输入

load Rails.root + '/lib/your_lib.rb'
模块动作可重新加载
def自带(基本)

ActiveSupport::Dependencies.explicitly_unloadable_constants对于Rails 3,将文章中给出的说明与@science的答案不同。在
环境/development.rb
文件中,添加以下行:

ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder'

ActiveSupport::Dependencies.autoload\u路径如果您已经使用了前面的方法,但不起作用(如我的案例),请尝试在
development.rb
中的
config.reload\u classes\u only\u on\u change


这里是Rails 4.2✋

可能重复的可能重复失败,除非我使用了
join
load Rails.root.join('lib/your_lib.rb')
@science的答案已被删除为仅链接的答案(该链接已经腐烂,值得一提)。
ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder'