main的未定义方法y是Rails控制台中的对象

Cap*_*arl 3 console ruby-on-rails rails-console

我一直使用'y'方法在Rails控制台中清理一下结果。但是,它似乎不再起作用。

我可以找到结果,并且可以查看结果,但不是干净的。这是我的rails控制台:

Loading development environment (Rails 3.2.6)
1.9.3-p286 :001 > y Trip.all
  Trip Load (0.1ms)  SELECT "trips".* FROM "trips" 
NoMethodError: undefined method `y' for main:Object
    from (irb):1
    from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
    from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
    from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
1.9.3-p286 :002 >
Run Code Online (Sandbox Code Playgroud)

rew*_*ten 5

这是我一生中第一次听说一种y方法。我一直使用ppp(包括后者后'pp')或ap(与awesome_print宝石)。

它不是IRB的一部分,也不是撬动的一部分。

它可能来自您已安装的特定gem,因此请检查gemfile中的最新更改,或者您切换到bundler或rvm,丢失了一些全局安装的gem。

哦,我的天哪,就是编辑

y 由yaml库提供:

require "yaml"
Run Code Online (Sandbox Code Playgroud)

将其添加到一些初始化脚本或.irbrc文件中。

噢,我的天哪没用!

它适用于普通IRB,但不适用于Rails控制台。

现在为什么

Rails控制台“ y”助手返回NameError而不是yaml格式的输出表明syckYAML库已在ruby 1.9.3中逐步淘汰psych,而使用的y方法则没有。

因此,请使用awesome_print其任何较小的弟兄。