2016-09-30 8 views
0

RubyMineを実行中2016.2.4。このプロジェクトには、$environmentと呼ばれる「グローバル」シングルトンがあります。コードベース全体で、このファイルはランタイム依存関係にアクセスするためにrequire_relativeです。 RubyMineは、このグローバルを使用するクラスで$environmentのすべてのインスタンスに対して "未解決のRuby参照"を表示しています。 environment.rbファイルがどのように見えるかのRubyMine:未解決のRubyグローバル変数のリファレンス

モックアップ:

require 'singleton' 

class Environment 
    include Singleton 
    def log 
    ... 
    end 
end 

$environment ||= Environment.instance 

使用例ルビーマインは文句を言う:この検査の問題を解決する方法上の無駄に検索

require_relative '../environment' 

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

私が試しましたRubyMineで正当な問題を見つけるのに便利なので、検査を無効にしたくないですが、これは正当な問題ではありません。

(グローバルが自分に悪いことについての解説を保管してください、私はその設計上の決定をしなかった - 。私はルビーマインは、基準を理解したい)

+0

Rubymineは庭文書を使用します。あなたのグローバル変数に役立つかもしれません。 '#@type [Environment]' – slowjack2k

答えて

1

私はあなたがルビーマインのバグを見つけたと思います。変更してみてください:

$environment ||= Environment.instance 

に:

$environment = $environment || Environment.instance 

またはちょうどあなたがどこか他の$environmentを定義することはありません確信している場合は、それを割り当てます。

+0

RubyMineのバグについて正しいかもしれません。 '$ environment = $ environment ||を使う環境問題が解決されたようだ。 – aarontc

関連する問題