1

我正在从 ruby​​ 1.8.7 升级到 ruby​​ 1.9.3。我注意到读取 YAML 序列化字段的方式有所不同。我的许多序列化字符串都被强制转换为新 YAML 格式的整数。例如:

1.8.7 :010 > "2011_01".to_yaml
 => "--- 2011_01\n" 
1.8.7 :011 > YAML.load("--- 2011_01\n")

1.9.3p125 :001 > YAML.load("--- 2011_01\n")
 => 201101 

这是什么原因造成的?有没有办法在新的 ruby​​ 中恢复到旧的行为,或者将我的字段迁移到新的格式?

4

1 回答 1

2

尝试syck用作解析器:

ruby-1.9.3-rc1 :001 > YAML::ENGINE.yamler = "syck"
 => "syck" 
ruby-1.9.3-rc1 :002 > YAML.load("--- 2011_01\n")
 => "2011_01"
于 2012-04-22T17:38:26.027 回答