我试图用y object
中的Rails 3.2.6 / 1.9.3的Ruby控制台获得很好的格式化YAML输出一个ActiveRecord对象,但由于某种原因,它不是为我工作。 我用它在过去,但一路走来的地方就坏了。 我得到下面的输出,当我尝试:
NameError: undefined local variable or method `yaml' for main:Object
我试图用y object
中的Rails 3.2.6 / 1.9.3的Ruby控制台获得很好的格式化YAML输出一个ActiveRecord对象,但由于某种原因,它不是为我工作。 我用它在过去,但一路走来的地方就坏了。 我得到下面的输出,当我尝试:
NameError: undefined local variable or method `yaml' for main:Object
该y
方法实际上是一个扩展Kernel
由到位对象SYCK YAML解析器/发射极 。 下面是最后几行lib/ruby/1.9.1/syck.rb
:
module Kernel
def y( object, *objects )
objects.unshift object
puts( if objects.length == 1
YAML.dump( *objects )
else
YAML.dump_stream( *objects )
end )
end
private :y
end
默认情况下,红宝石1.9.3采用精极度紧张解析器/发射器 ,而不是SYCK(我只能假定他们是不同的发音)和精极度紧张不声明这样的方法。
如果你真的爱y
,你可以简单地使用SYCK的精极度紧张,而不是在控制台:
Loading development environment (Rails 3.2.5)
1.9.3p194 :001 > y 'hello'
NoMethodError: undefined method 'y' for main:Object
1.9.3p194 :002 > YAML::ENGINE.yamler = 'syck'
"syck"
1.9.3p194 :003 > y 'hello'
--- hello
nil
我也将利用这次机会向塞awesome_print ,这确实为基本上一切什么y
确实为YAML。
对于轨道4 /红宝石2你可以只使用
puts object.to_yaml