Când m-am'm execută un simplu script Ruby, ceea ce's cel mai simplu mod de a arunca un obiect's domenii la consola?
Am'm în căutarea pentru ceva similar cu PHP's print_r()
care va lucra cu tablouri la fel de bine.
S-ar putea găsi o utilizare pentru metodele
metodă care returnează o serie de metode pentru un obiect. L's nu la fel ca `print_r, dar încă util uneori.
>> "Hello".methods.sort
=> ["%", "*", "+", "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", "[]", "[]=", "__id__", "__send__", "all?", "any?", "between?", "capitalize", "capitalize!", "casecmp", "center", "chomp", "chomp!", "chop", "chop!", "class", "clone", "collect", "concat", "count", "crypt", "delete", "delete!", "detect", "display", "downcase", "downcase!", "dump", "dup", "each", "each_byte", "each_line", "each_with_index", "empty?", "entries", "eql?", "equal?", "extend", "find", "find_all", "freeze", "frozen?", "grep", "gsub", "gsub!", "hash", "hex", "id", "include?", "index", "inject", "insert", "inspect", "instance_eval", "instance_of?", "instance_variable_defined?", "instance_variable_get", "instance_variable_set", "instance_variables", "intern", "is_a?", "is_binary_data?", "is_complex_yaml?", "kind_of?", "length", "ljust", "lstrip", "lstrip!", "map", "match", "max", "member?", "method", "methods", "min", "next", "next!", "nil?", "object_id", "oct", "partition", "private_methods", "protected_methods", "public_methods", "reject", "replace", "respond_to?", "reverse", "reverse!", "rindex", "rjust", "rstrip", "rstrip!", "scan", "select", "send", "singleton_methods", "size", "slice", "slice!", "sort", "sort_by", "split", "squeeze", "squeeze!", "strip", "strip!", "sub", "sub!", "succ", "succ!", "sum", "swapcase", "swapcase!", "taguri", "taguri=", "taint", "tainted?", "to_a", "to_f", "to_i", "to_s", "to_str", "to_sym", "to_yaml", "to_yaml_properties", "to_yaml_style", "tr", "tr!", "tr_s", "tr_s!", "type", "unpack", "untaint", "upcase", "upcase!", "upto", "zip"]
p object
Pentru fiecare obiect, în mod direct, scrie obj.verificați urmat de un caracter newline la programul standard de ieșire.
Daca're în căutarea doar pentru variabile de instanta în obiect, acest lucru ar putea fi utile:
obj.instance_variables.map do |var|
puts [var, obj.instance_variable_get(var)].join(":")
end
sau ca un one-liner pentru copiere și lipire:
obj.instance_variables.map{|var| puts [var, obj.instance_variable_get(var)].join(":")}
Am dat peste acest thread deoarece am fost în căutarea pentru ceva similar. Îmi plac răspunsurile și mi-au dat niște idei așa că am testat .to_hash metodă și a lucrat foarte bine pentru utilizarea caz. soo:
obiect.to_hash
object.attributes_name
=> ["id", "nume", "e-mail", "created_at", "updated_at", "password_digest", "remember_token", "admin", "marketing_permissions", "terms_and_conditions", "dezactiva", "black_list""zero_cost", "password_reset_token", "password_reset_sent_at"]
object.attributes.values
=> [1, "tom", "[email protected]", Tue, 02 Jun 2015 00:16:03 UTC +00:00, Tue, 02 Jun 2015 00:22:35 UTC +00:00, "$2a$10$gUTr3lpHzXvCDhVvizo8Gu/MxiTrazOWmOQqJXMW8gFLvwDftF9Lm", "2dd1829c9fb3af2a36a970acda0efe5c1d471199", adevărat, nil, nil, nil, nil, nil, nil, nil]