3

我总是使用 '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 >
4

1 回答 1

5

这真的是我有生以来第一次听说一种y方法。我一直使用por pp(包括后的后者'pp')或ap(与awesome_printgem 一起使用)。

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

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

哦,我的天哪,这就是编辑

y由 yaml 库提供:

require "yaml"

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

哦,天哪,它不起作用!

它适用于香草 IRB,但不适用于 Rails 控制台....

这就是为什么

Rails 控制台 'y' 助手返回 NameError 而不是 yaml-formatting 输出表示syckYAML 库在 ruby​​ 1.9.3 中被淘汰,取而代之的是psych,它没有该y方法。

所以,使用awesome_print或任何它的小兄弟。

于 2012-10-30T17:25:30.953 回答