2011-12-09 9 views
0

現在のディレクトリが$ LOAD_PATHに含まれていないのはなぜですか?これは奇妙に思える。私はちょうどそれを追加し続けますが、私はそれが自動的に含まれていないことを見ていないいくつかの理由はありますか?

答えて

5

$LOAD_PATHには、現在のディレクトリがRuby 1.8.7に含まれていますが、この動作は1.9.2で変更されています。 this questionへの回答の中で、この決定の背後にある理由についての説明が考えられますが、基本的な考え方は、コードが実行されるディレクトリであり、1.8.7での.は、コードが実行されるディレクトリであり、ほとんどの場合、あなたはそれを望んでおらず、あなたの$LOAD_PATH.は信頼できません。

1.9.2にrequire_relativeを使用すると、.を手動で$LOAD_PATHに追加したくない場合は、良い解決策になる可能性があります。 hereは、相対パスを明示的に拡張するだけであることがわかります。注意すべき点の1つは、1.9.2より前のバージョンでは利用できないということです。そのため、あなたのコードは古いルビーと互換性がありません。

関連する問題