RubyMine:未解决的Ruby参考全局变量

问题描述:

运行RubyMine 2016.2.4。这个项目有一个名为$environment的“全球”单身人士。遍布整个代码库的这个文件是require_relative'd来访问运行时依赖关系。 RubyMine在使用此全局的类中为$environment的每个实例显示“未解析的Ruby参考”。的environment.rb文件的外观RubyMine:未解决的Ruby参考全局变量

实物模型:

require 'singleton' 

class Environment 
    include Singleton 
    def log 
    ... 
    end 
end 

$environment ||= Environment.instance 

用法示例这RubyMine的抱怨:

require_relative '../environment' 

class FancyWorker 
    def run 
    ... 
    $environment.log.info 'Running!' 
    end 
end 

我试图寻找无果如何解决此问题的检查在RubyMine中。我不想禁用检查,因为它对于发现合法问题很有用 - 但这不是合法的问题。

(请保留约全局是坏自己的评论,我并没有作出这样的设计决策 - 我只是想帮助的RubyMine了解参考。)

+0

卢西丁使用院校文件。也许它对你的全局变量也有帮助'#@type [Environment]' – slowjack2k

我想你发现的RubyMine的错误。尝试改变:

$environment ||= Environment.instance 

到:

$environment = $environment || Environment.instance 

或只是分配给它,如果你确信你不会被定义$environment其他地方。

+0

你可能对RubyMine中的错误是正确的。使用'$ environment = $ environment || Environment.instance似乎已经解决了这个问题。 – aarontc