Bagaimana cara dump objek's bidang untuk konsol?

Ketika saya'm berjalan sederhana Ruby script, apa's cara termudah untuk membuang objek's bidang untuk konsol?

I'm mencari sesuatu yang mirip dengan PHP's print_r() yang akan bekerja dengan array juga.

Larutan

Mungkin:

puts variable.inspect
Komentar (5)

Anda mungkin menemukan gunakan untuk metode adalah metode yang mengembalikan sebuah array dari metode-metode untuk objek. It's tidak sama dengan print_r, tapi masih berguna di kali.


>> "Hello".methods.sort
=> ["%", "*", "+", "
Komentar (3)

The to_yaml metode tampaknya kadang-kadang berguna:

$foo = {:name => "Clem", :age => 43}

puts $foo.to_yaml

kembali

--- 
:age: 43
:name: Clem

(Hal ini tergantung pada beberapa NAMA modul yang dimuat? Atau yang biasanya tersedia?)

Komentar (2)
p object

Ruby doc untuk p.

p(*args) publik

Untuk masing-masing objek, langsung menulis obj.memeriksa diikuti oleh baris baru untuk program standar output.

Komentar (3)

Jika anda're yang mencari contoh variabel dalam objek, ini mungkin berguna:

obj.instance_variables.map do |var|
  puts [var, obj.instance_variable_get(var)].join(":")
end

atau sebagai satu-liner untuk copy dan paste:

obj.instance_variables.map{|var| puts [var, obj.instance_variable_get(var)].join(":")}
Komentar (0)

menempatkan foo.to_json

mungkin berguna karena json modul dimuat secara default

Komentar (1)

Jika anda ingin cetak yang sudah menjorok JSON:

require 'json'
...
puts JSON.pretty_generate(JSON.parse(object.to_json))
Komentar (0)

Saya datang di thread ini karena saya sedang mencari sesuatu yang serupa. Saya suka tanggapan dan mereka memberi saya beberapa ide jadi saya diuji .to_hash metode dan bekerja benar-benar baik untuk use case juga. soo:

objek.to_hash

Komentar (0)
object.attributes_name

=> ["id", "", "email", "created_at", "updated_at", "password_digest", "remember_token", "admin", "marketing_permissions", "terms_and_conditions", "menonaktifkan", "black_list", "zero_cost", "password_reset_token", "password_reset_sent_at"]

object.attributes.values

=> [1, "tom", "tom@tom.com", Tue, 02 Apr 2015 00:16:03 UTC +00:00, Tue, 02 Apr 2015 00:22:35 UTC +00:00, "$2a$10$gUTr3lpHzXvCDhVvizo8Gu/MxiTrazOWmOQqJXMW8gFLvwDftF9Lm", "2dd1829c9fb3af2a36a970acda0efe5c1d471199", benar, nil, nil, nil, nil, nil, nil, nil]

Komentar (3)