How do I print out the contents of an object in Rails for easy debugging?
define the to_s method in your model. For example
class Person < ActiveRecord::Base
def to_s
"Name:#{self.name} Age:#{self.age} Weight: #{self.weight}"
end
end
Then when you go to print it with #puts it will display that string with those variables.
I generally first try .inspect
, if that doesn't give me what I want, I'll switch to .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
Hope that helps.
I'm using the awesome_print gem
So you just have to type :
ap @var