ruby方式-相对路径

ruby方式-相对路径,ruby,file,relative-path,Ruby,File,Relative Path,我正在ruby脚本中使用File.read('File.txt')。但我不知道创建正确的相对路径的最佳方法是什么,我能做什么 File.read(File.dirname(__FILE__) + '/file.txt) 但是我想知道ruby中是否有更漂亮的方法?有很多方法,但这一种是最灵活的: File.read(File.expand_path('file.txt', File.dirname(__FILE__)) 您可能还希望使用Dir.pwd相对于shell中的当前工作目录 请注意,对

我正在ruby脚本中使用
File.read('File.txt')
。但我不知道创建正确的相对路径的最佳方法是什么,我能做什么

File.read(File.dirname(__FILE__) + '/file.txt)

但是我想知道ruby中是否有更漂亮的方法?

有很多方法,但这一种是最灵活的:

File.read(File.expand_path('file.txt', File.dirname(__FILE__))
您可能还希望使用
Dir.pwd
相对于shell中的当前工作目录


请注意,对路径使用字符串连接可能会起作用,但使用
expand\u path
join
更可靠,并能正确处理平台差异,例如在Windows上,部件本机使用反斜杠连接。

有多种方法,但这是最灵活的:

File.read(File.expand_path('file.txt', File.dirname(__FILE__))
您可能还希望使用
Dir.pwd
相对于shell中的当前工作目录


请注意,对路径使用字符串连接可能会起作用,但使用
expand\u path
join
更可靠,并且可以正确处理平台差异,例如在Windows上,部件本机使用反斜杠连接。

您的代码看起来不错。唯一可能的问题是正斜杠的假设,如下所述。例如,如果这是一个rails项目,那么您也可以使用
rails.root
来定义项目中的路径。这就是gem存在的原因。这可能是重复的,但它不是链接问题的重复,因为这根本不涉及相对路径。您的代码看起来不错。唯一可能的问题是正斜杠的假设,如下所述。例如,如果这是一个rails项目,那么您也可以使用
rails.root
来定义项目内的路径。这就是gem存在的原因。这可能是重复的,但它不是链接问题的重复,因为这根本不涉及相对路径。