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

时间:2016-09-30 17:39:16

标签: ruby global-variables rubymine

运行RubyMine 2016.2.4。这个项目有一个"全球"单身人士称为$environment。在整个代码库中,此文件require_relative可以访问运行时依赖项。 RubyMine正在展示" Unresolved Ruby Reference"对于使用此全局的类中的$environment的每个实例。

模拟environment.rb文件的外观:

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理解参考。)

1 个答案:

答案 0 :(得分:1)

我认为您在RubyMine上发现了一个错误。尝试更改:

$environment ||= Environment.instance

为:

$environment = $environment || Environment.instance

或者如果您确定不会在其他任何地方定义$environment,请指定它。