unde的方法`y` for main:rails console中的对象

时间:2012-10-30 17:21:27

标签: ruby-on-rails console 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 >

1 个答案:

答案 0 :(得分:4)

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

它不是IRB的一部分,也不是pry的一部分。

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

OH我认为这是编辑

y由yaml库提供:

require "yaml"

在一些初始化脚本或.irbrc文件中添加它。

哦,我觉得它不起作用了!

它适用于vanilla IRB,但不适用于rails控制台......

现在为什么

Rails console 'y' helper returns NameError rather than yaml-formatting outputsyck YAML库已在ruby 1.9.3中逐步取消,而psych则没有y方法。

所以,请使用awesome_print或其中任何较小的弟兄。