Как показать значения экземпляра с разрывом строки в консоли Rails

Я начинаю использовать pry в консоли rails. Когда я получаю экземпляр модели Rails, значения отображаются без разрывов строк следующим образом:

pry(#<Class:0x1022f60e0>):1> first
=> #<Article id: 1, name: "What is Music", content: "Music is an art form in which the medium is sound o...", created_at: "2011-08-24 20:35:29", updated_at: "2011-08-24 20:37:22", published_at: "2011-05-13 23:00:00">

из http://railscasts.com/episodes/280-pry-with-rails?view=asciicast

Есть ли способ показать значения с такими разрывами строк?

Article
 id: 1
 name: "What is Music"
 content: "Music is an art form in which the medium is sound o..."
 created_at: "2011-08-24 20:35:29"
 updated_at: "2011-08-24 20:37:22"
 published_at: "2011-05-13 23:00:00"

person ironsand    schedule 28.08.2014    source источник
comment
Вы пробовали .to_yaml?   -  person PinnyM    schedule 28.08.2014


Ответы (3)


Вы можете вызвать .to_yaml для экземпляра модели! Он возвращает строку, отформатированную почти точно так, как вы ее запрашиваете.

Вот несколько примеров вывода to_yaml:

http://yaml4r.sourceforge.net/doc/page/examples.htm

person animatedgif    schedule 28.08.2014

Я рекомендую вам установить awesome_print.

Добавьте его в свой Gemfile:

group :development do
  gem 'awesome_print'
end

И установите его с помощью bundle install.

Теперь используйте ap, чтобы напечатать его в консоли:

pry(#<Class:0x1022f60e0>):1> ap first

#<Article:0x1022f60e0> {
           :id => 1,
         :name => "What is Music"
      :content => "Music is an art form in which the medium is sound o..."
   :created_at => "2011-08-24 20:35:29"
   :updated_at => "2011-08-24 20:37:22"
 :published_at => "2011-05-13 23:00:00"
}
person infused    schedule 28.08.2014

Я думаю, приведенный ниже трюк вам подойдет.

arup@linux-wzza:~/Rails/model_prac> rails c
Loading development environment (Rails 4.1.4)
2.1.2 :001 > Comment.first
  Comment Load (0.4ms)  SELECT  "comments".* FROM "comments"   ORDER BY "comments"."id" ASC LIMIT 1
 => #<Comment id: 1, value_old: "I am a good Boy.", value_new: "I am a bad Boy.", created_at: "2014-08-02 17:36:14", updated_at: "2014-08-02 18:21:42">
2.1.2 :002 > y Comment.first
  Comment Load (0.4ms)  SELECT  "comments".* FROM "comments"   ORDER BY "comments"."id" ASC LIMIT 1
--- !ruby/object:Comment
attributes:
  id: 1
  value_old: I am a good Boy.
  value_new: I am a bad Boy.
  created_at: 2014-08-02 17:36:14.249466000 Z
  updated_at: 2014-08-02 18:21:42.511522000 Z
 => nil
2.1.2 :003 >
person Arup Rakshit    schedule 28.08.2014