2012-10-30 4 views
2

Я всегда использовал метод« y », чтобы мои результаты были очищены в моей консоли rails. Однако, похоже, он больше не работает.undefined method `y` for main: Object in rails console

У меня есть результаты, которые можно найти, и я могу просмотреть результат, но просто не в чистом виде. Это мой Рельсы консоли:

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

Это действительно первый раз в моей жизни, что я слышал о методе y. Я всегда использовал p или pp (последний после включения 'pp') или ap (с драгоценным камнем awesome_print).

Это не часть IRB, а не pry.

Возможно, это связано с конкретным камнем, который вы установили, поэтому проверьте последние изменения в вашем gemfile или, возможно, переключитесь на bundler или rvm, потеряв какой-то глобально установленный камень.

OH MY GOSH это РЕДАКТИРОВАНИЕ

y обеспечивается библиотекой YAML:

require "yaml" 

Добавьте это в некоторой инициализации скрипта, или в файле .irbrc.

ОН МОЙ ГОШ ЭТО НЕ РАБОТАЕТ!

Он работает в ванильным IRB, но не в рельсах консоли ....

ТЕПЕРЬ ВОТ ПОЧЕМУ

Rails console 'y' helper returns NameError rather than yaml-formatting output говорит, что библиотека syck YAML была свернута в рубин 1.9.3 в пользу psych, который не имеет метода y.

Итак, используйте awesome_print или любой из его меньших братьев.

+0

awesome_print работает как очарование. Благодаря! – CaptainCarl

+0

Я попытался установить жемчужину «awesome_print» и потребовал «awesome_print» в файле Ruby, но метод y еще не определен. У вас есть метод с помощью awesome_print gem? –

+0

@BrettSanders 'awesome_print' не предоставляет метод' y'. Он предоставляет метод 'ap', который намного превосходит' y'! 'y' вообще отсутствует в ruby ​​1.9.3, по указанной выше причине (изменение базовой библиотеки YAML) – rewritten