Ruby では、パスにバックスラッシュをわざわざ使用しないでください。
他の多くの言語と同様に、Ruby はプラットフォームを認識しており、パス スラッシュをプラットフォームの正しい方向に自動的に変換します。つまり、パスで常にスラッシュを使用して、それで完了できることを意味します。
IOのドキュメントから:
Ruby は、可能であれば、異なるオペレーティング システムの規則間でパス名を変換します。たとえば、Windows システムでは、ファイル名「/gumby/ruby/test.rb」は「\gumby\ruby\test.rb」として開かれます。Ruby 文字列で Windows スタイルのファイル名を指定するときは、必ずバックスラッシュをエスケープしてください。
"c:\\gumby\\ruby\\test.rb"
ここでの例では、Unix スタイルのスラッシュを使用します。File::SEPARATOR を使用して、プラットフォーム固有の区切り文字を取得できます。
"path\to\something"
追加情報として、エスケープされた\s
andを持つことで発生している問題\t
は、文字列が二重引用符で囲まれているためです。バックスラッシュがその魔法を失うため、単一引用符で囲まれている場合、問題は発生しません。詳細については、「単一引用符で囲まれた文字列と二重引用符で囲まれた文字列のバックスラッシュ?」を参照してください。