我有一个指向空.yml
文件的文件对象。当我尝试使用YAML.load
加载此文件时,我得到false
而不是空哈希。这是预期的行为吗?
file.read
按预期返回""
。
答案 0 :(得分:5)
这可能是因为YAML.parse("")
返回false
。所以我认为这是预期的行为。
答案 1 :(得分:3)
您可以修改load_file
功能,如下所示:
而不是
data_hash = YAML.load_file(yaml_file)
要
data_hash = YAML.load_file(yaml_file, {})
因此当向YAML
函数提供空load_file
文件时,它将返回一个空哈希(我的Ruby版本是Ruby 2.4.0p0)
实施例: 空文件:/Users/batman/config/config.yml
irb:
2.4.0 :001 > require 'yaml'
=> true
2.4.0 :006 > YAML.load_file("/Users/batman/config/config.yml",{})
=> {}