让我们假设一个脚本需要访问一个目录,比如在“任意”操作系统上的/some/where/abc
。有几个选项,以构建在Ruby中的路径:如何在Ruby中构建一个可移植的绝对路径?
File.join('', 'some', 'where', 'abc')
File.absolute_path("some#{File::SEPARATOR}where#{File::SEPARATOR}abc", File::SEPARATOR)
Pathname
标准API
在我认为,第一个解决方案是不够清楚,但地道。根据我的经验,一些代码审查要求评论,说明它做什么...
问题
有没有更好的方式来建立一个绝对路径红宝石,其中更好的方法“做的工作,并为自己说话“?
我只是在代码审查中链接文档。它明确指出“返回一个使用File :: SEPARATOR连接字符串形成的新字符串”。 'File#join'是生成便携式路径的常用方法。 –
根据“任意操作系统”的含义,作为字符串文字的“tmp/abc /”是Linux,Mac和Windows上的有效路径。 –
该文档或仅作为注释的预期路径,效果很好。试图在Ruby中发现隐藏或遗忘的法术。 –