1. ホーム
  2. ルビー

[解決済み】rubyで安全なjoinパス名を行うには?

2022-04-09 05:13:44

質問

Railsの開発環境はWindowsベース、本番環境はLinuxベースです。

VirtualHostが使われる可能性があります。の中で1つのファイル名を参照する必要があると仮定します。 /public というフォルダに File.open('/tmp/abc.txt', 'r') .

-しかし、Windows では、次のようになります。 C:\tmp\abc.txt . 2つの異なる環境を扱うために、正しいパス結合を行うにはどうしたらよいでしょうか?

prefix_tmp_path = '/tmp/'
filename = "/#{rand(10)}.txt"

fullname = prefix_tmp_path + filename # /tmp//1.txt <- but I don't want a double //

そして、いつ prefix_tmp_path = "C:\tmp\" 私は C:\tmp\/1.txt

両方のケースを処理する正しい方法は何ですか?

どのように解決するのですか?

File.joinを使用することをお勧めします。

>> File.join("path", "to", "join")
=> "path/to/join"