なぜ File.expand_path(FILE) なのでしょうか?
概要
私は Ruby と、Sinatra や Rails などのフレームワークを研究していて、次のようなコードを目にしました。
File.expand_path(..., __FILE__) # this returns something like /Users/.../app/something.rb
単に次から始めるのではなく、
File.expand_path(..., ".") # this returns something like /Users/.../app
どちらも有効な既知のパスを返すため、「.」ではなく __FILE__ から移動を開始する理由はありますか?
解決策
dir または (FILE) は、必ずしも「.」と同じであるとは限りません。前者はファイルの場所です。後者は、メイン コマンドが呼び出された場所 (または、Dir.chdir などのコマンドによって変更された場所) です。