给出以下YAML文件:
---
foo: <%= $stdout %>
当我尝试ERB这个yaml文件时:
YAML.load(ERB.new(File.read(filename)).result)
我得到以下结果:
{"foo"=>nil}
为什么$stdout
解析不正确?如果我在其中放入其他ruby代码,它会按预期工作。
答案 0 :(得分:2)
看看你刚刚运行ERB时得到的结果:
ERB.new("foo: <%= $stdout %>").result
结果如下:
foo: #<IO:0x0056078694db38>
所以foo
将设置为nil
,因为#
是YAML中的评论字符。