3

我有一个指向空.yml文件的文件对象。当我尝试加载此文件时,YAML.load我得到false的不是空哈希。这是预期的行为吗?

file.read正在""按预期返回。

4

2 回答 2

6

那可能是因为YAML.parse("")返回false。所以我想这是预期的行为。

于 2012-06-15T15:57:37.313 回答
4

您可以修改load_file功能如下:

代替

data_hash = YAML.load_file(yaml_file)

data_hash = YAML.load_file(yaml_file, {})

因此,当YAMLload_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",{})
    => {} 
于 2018-05-07T08:08:56.293 回答