You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Mobile子目录读取ROMauto下的test_data.yml配置文件?

解决Ruby跨目录读取YAML配置文件的问题

我来帮你搞定这个跨目录读取YAML文件的问题~你遇到的报错本质是路径计算错误,导致脚本找不到正确的文件位置。下面给你几个靠谱的解决方案:

方法一:用File.expand_path + File.join定位文件

这是最稳妥的方式,能自动适配不同操作系统的路径分隔符:

# 获取当前脚本所在的Mobile目录绝对路径
current_script_dir = File.dirname(File.expand_path(__FILE__))
# 拼接上一级目录(ROMauto)和目标YAML文件名
yml_file_path = File.join(current_script_dir, '..', 'test_data.yml')
# 读取YAML文件
@datasource = YAML.load_file(yml_file_path)

方法二:用__dir__简化代码(Ruby 2.0+支持)

如果你的Ruby版本在2.0及以上,可以用__dir__直接获取当前脚本所在目录的绝对路径,代码更简洁:

yml_file_path = File.join(__dir__, '..', 'test_data.yml')
@datasource = YAML.load_file(yml_file_path)

关键说明

  • '..'表示当前目录的上一级目录,也就是从Mobile目录跳回ROMauto根目录,这样就能精准定位到test_data.yml。
  • 一定要用File.join拼接路径,而不是手动用字符串拼接(比如current_dir + '/../test_data.yml'),前者会自动处理Windows和Linux/macOS的路径差异,避免出现无效路径。
  • 确认test_data.yml确实存在于ROMauto目录下,且脚本有读取该文件的权限。

内容的提问来源于stack exchange,提问作者Emjey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:17:29