다음과 같이 멋지게 보이기를 원합니다.
>> 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"
생각?
답변
이 y
방법은 꽤 YAML 출력을 얻는 편리한 방법입니다.
y ProductColor.all
당신이 있다고 가정 script/console
jordanpg가 언급 했듯이이 답변은 구식입니다. Rails 3.2+의 경우 y
메소드가 작동 하기 전에 다음 코드를 실행해야합니다 .
YAML::ENGINE.yamler = 'syck'
에서 루비 문서
예전의 루비 버전에서는 <= 1.9, Syck는 여전히 제공되지만 Ruby 2.0.0 릴리스에서는 완전히 제거되었습니다.
rails 4 / ruby 2의 경우 바로 사용할 수 있습니다
puts object.to_yaml
답변
당신은 hirb 시도해야합니다 . 루비 콘솔에서 객체를 예쁜 형식으로 만들기 위해 만든 보석입니다. 스크립트 / 콘솔 세션은 다음과 같습니다.
>> require 'hirb'
=> true
>> Hirb.enable
=> true
>> ProductColor.first
+----+-------+---------------+---------------------+---------------------+
| id | name | internal_name | created_at | updated_at |
+----+-------+---------------+---------------------+---------------------+
| 1 | White | White | 2009-06-10 04:02:44 | 2009-06-10 04:02:44 |
+----+-------+---------------+---------------------+---------------------+
1 row in set
=> true
hirb에 대한 자세한 내용은 홈페이지를 참조하십시오 .
답변
들여 쓰기를 원한다면 멋진 인쇄 도 좋습니다. 다음과 같은 것 :
$ rails console
rails> require "awesome_print"
rails> ap Account.all(:limit => 2)
[
[0] #<Account:0x1033220b8> {
:id => 1,
:user_id => 5,
:assigned_to => 7,
:name => "Hayes-DuBuque",
:access => "Public",
:website => "http://www.hayesdubuque.com",
:toll_free_phone => "1-800-932-6571",
:phone => "(111)549-5002",
:fax => "(349)415-2266",
:deleted_at => nil,
:created_at => Sat, 06 Mar 2010 09:46:10 UTC +00:00,
:updated_at => Sat, 06 Mar 2010 16:33:10 UTC +00:00,
:email => "info@hayesdubuque.com",
:background_info => nil
},
[1] #<Account:0x103321ff0> {
:id => 2,
:user_id => 4,
:assigned_to => 4,
:name => "Ziemann-Streich",
:access => "Public",
:website => "http://www.ziemannstreich.com",
:toll_free_phone => "1-800-871-0619",
:phone => "(042)056-1534",
:fax => "(106)017-8792",
:deleted_at => nil,
:created_at => Tue, 09 Feb 2010 13:32:10 UTC +00:00,
:updated_at => Tue, 09 Feb 2010 20:05:01 UTC +00:00,
:email => "info@ziemannstreich.com",
:background_info => nil
}
]
기본적으로 irb / rails / pry 콘솔과 통합하려면 ~/.irbrc
또는 ~/.pryrc
파일에 추가 하십시오.
require "awesome_print"
AwesomePrint.irb! # just in .irbrc
AwesomePrint.pry! # just in .pryrc
답변
답변
또한 다음을 사용할 수 있습니다.
j ProductColor.all.inspect
Yaml 대신 Json 형식으로 출력
답변
안녕하세요, 스크립트 / 콘솔에서 시도해 볼 수도 있습니다.
>> y ProductColor.all
당신을 위해 작동하지 않습니다.
이 시도:
>> require 'yaml'
>> YAML::ENGINE.yamler = 'syck'
그때
>> y ProductColor.all
답변
나는 그것을 작동시키는 데 문제가 있었으므로 awesome_print에 2 센트를 추가 할 것입니다 .Gemfile에 이것을 추가하십시오. :development
gem 'awesome_print', require: 'ap'
그런 다음
rails console
넌 할 수있어
> ap Model.all
그게 다야. 그러나 당신은 또한 추가 할 수 있습니다
require "awesome_print"
AwesomePrint.irb!
~ / .irbrc에 콘솔을 열 때마다 awesome_print가 필요하며 간단하게 할 수 있습니다.
ap를 입력하지 않아도 Model.all