首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Rails中打印出对象的内容以便于调试?

如何在Rails中打印出对象的内容以便于调试?
EN

Stack Overflow用户
提问于 2011-01-28 23:27:52
回答 8查看 113.5K关注 0票数 114

我想我正在尝试获得print_r() (人类可读的印刷体)的PHP等价物;目前的原始输出是:

ActiveRecord::Relation:0x10355d1c0

我该怎么办?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-01-28 23:43:42

我通常首先尝试.inspect,如果它不能满足我的需求,我将切换到.to_yaml

class User
  attr_accessor :name, :age
end

user = User.new
user.name = "John Smith"
user.age = 30

puts user.inspect
#=> #<User:0x423270c @name="John Smith", @age=30>
puts user.to_yaml
#=> --- !ruby/object:User
#=> age: 30
#=> name: John Smith

希望这能有所帮助。

票数 234
EN

Stack Overflow用户

发布于 2011-01-28 23:33:01

在模型中定义to_s方法。例如

class Person < ActiveRecord::Base
  def to_s
    "Name:#{self.name} Age:#{self.age} Weight: #{self.weight}"
  end
end

然后,当您使用#put打印它时,它将显示包含这些变量的字符串。

票数 9
EN

Stack Overflow用户

发布于 2014-02-04 22:52:39

我正在使用awesome_print gem

所以你只需要输入:

ap @var
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4829909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档