Я хочу, чтобы что-то вроде этого выглядело красиво:
>> ProductColor.all
=> [#<ProductColor id: 1, name: "White", internal_name: "White", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 2, name: "Ivory", internal_name: "Ivory", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 3, name: "Blue", internal_name: "Light Blue", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 4, name: "Green", internal_name: "Green", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">]
Это не работает:
>> ProductColor.all.inspect
=> "[#<ProductColor id: 1, name: \"White\", internal_name: \"White\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 2, name: \"Ivory\", internal_name: \"Ivory\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 3, name: \"Blue\", internal_name: \"Light Blue\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 4, name: \"Green\", internal_name: \"Green\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">]"
И это тоже не так:
>> ProductColor.all.to_yaml
=> "--- \n- !ruby/object:ProductColor \n attributes: \n name: White\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"1\"\n internal_name: White\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Ivory\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"2\"\n internal_name: Ivory\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Blue\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"3\"\n internal_name: Light Blue\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Green\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"4\"\n internal_name: Green\n attributes_cache: {}\n\n"
Мысли?
ruby-on-rails
irb
Том Леман
источник
источник
YAML::ENGINE.yamler = 'syck'
..irbrc
другим консольным инструментам или другим конфигурациям консоли (например, если вы являетесь разработчиком по контракту с ограниченным доступом к производственному контейнеру / серверу )Тебе стоит попробовать хирб . Это жемчужина, предназначенная для красивого форматирования объектов в консоли Ruby. Ваш сеанс скрипта / консоли будет выглядеть так:
Вы можете узнать больше о hirb на его домашней странице .
источник
Хорошая печать тоже хороша, если вы хотите, чтобы объект был с отступом. Что-то вроде:
Чтобы интегрировать его по умолчанию с вашей консолью irb / rails / pry, добавьте в свой
~/.irbrc
или~/.pryrc
файл:источник
Просто отлично работает!
Источник: https://stackoverflow.com/a/4830096
источник
Также можно отметить, что вы можете использовать:
выводить в формате Json, а не Yaml
источник
Привет, вы также можете попробовать это в своем скрипте / консоли, если
не работает для вас.
Попробуй это:
затем
источник
У меня были проблемы с его работой, поэтому я добавлю свои два цента в awesome_print и добавлю это в свой Gemfile, желательно в
:development
gem 'awesome_print', require: 'ap'
затем в
rails console
ты можешь сделать
> ap Model.all
Вот и все. Однако вы также можете добавитьв ваш ~ / .irbrc, таким образом awesome_print будет требоваться каждый раз, когда вы открываете консоль, и вы можете просто сделать
Model.all без необходимости набирать ap
источник
Вы также можете попробовать следующее для группы объектов
Это даст вам гораздо лучший результат, например
Вызов
to_yaml
атрибутов, а не самого объекта, избавляет вас от просмотра полного содержимого объекта в выводе.Или
puts Object.last.attributes.to_yaml
для одного объектаТакже доступна стенография:
y Object.last.attributes
источник
Считаю это решение наиболее точным. Вы должны попробовать это:
Это даст вам очень хороший результат по сравнению с форматом YAML:
источник
Используйте
irbtools
драгоценный камень.Он автоматически отформатирует вывод консоли, а также вы получите множество замечательных функций.
источник
Возможно, вы захотите определить метод проверки ProductColor, чтобы возвращать то, что вам нравится. Например:
После этого результат ProductColor.all будет отображаться как [<1 - White (White)>, ...]. Конечно, вам следует настроить метод проверки в соответствии с вашими потребностями, чтобы он отображал всю необходимую информацию в удобном для вас стиле.
Изменить: также, если проблема заключалась в отсутствии разрывов строк в выводе, вы можете попробовать
который должен вставлять перенос строки, где это необходимо
источник
require 'pp'
невозможно вrails console --sandbox
. Почему-то получаю,false
когда пытаюсь требоватьpp
. К сожалению! похоже, чтоpp
уже требуется по умолчанию вrails console
. Я только что это сделалpp Model.connection_handler
и получил большую красивую распечатку. Спасибо.require
возвращаетсяfalse
, это означает, что файл уже загружен.inspect
не отображается при выполнении простоProductColor.all
?Чтобы добавить к предложению Alter Lago об использовании AwesomePrint, если вы не можете / не должны / не хотите добавлять драгоценный камень awesome_print в Gemfile вашего проекта, сделайте следующее:
gem install awesome_print
Отредактируйте ~ / .irb.rc и добавьте это:
$LOAD_PATH << '/Users/your-user/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/awesome_print-1.1.0/lib'
require 'awesome_print'
(Конечно, убедитесь, что путь и версия верны)
источник