【问题标题】:Ruby: Require a file again if it is changedRuby:如果文件被更改,则再次要求文件
【发布时间】:2011-03-11 21:02:49
【问题描述】:

我编写了一个 gem,它在 config/ 中查找配置文件。这很好用,但是如果用户更改任何配置,他们必须在我的 gem 加载新配置之前停止程序并重新启动它。这将要求他们在每次更改时重新启动整个 Rails 应用程序,这并不理想。

有没有办法“重新要求”一个文件,以便它重新加载它而不是使用缓存的版本。

【问题讨论】:

    标签: ruby require


    【解决方案1】:

    您可以使用load 代替require。这将加载文件,无论它之前是否已经加载。请注意,对于load,您需要指定.rb 扩展名,这对于require 是可选的。所以require "path/to/myconfig" 变成了load "path/to/myconfig.rb"

    请注意,这不会取消先前配置定义的任何内容。因此,如果配置从$verbose = true; $debug = true 更改为$verbose = false,则$verbose 将是false,但$debug 在重新加载配置后仍将是true

    当然,您需要将 load 语句放在每次重新加载配置文件时(即在某些方法或挂钩中)都会执行的地方。

    【讨论】:

      猜你喜欢
      • 2022-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 2011-08-06
      • 1970-01-01
      相关资源
      最近更新 更多