---
title: Customizing object display
description: Customize how objects are displayed in Ruby error reports to improve readability and protect sensitive data.
url: https://docs.honeybadger.io/lib/ruby/errors/customizing-object-display/
---

By default, Honeybadger supports displaying the following core Ruby objects (uncoincidentally, these objects are also supported by JSON):

```plaintext
Hash
Array
Set
Numeric
TrueClass
FalseClas
NilClass
String
```

When an object of a different class is sent as data to Honeybadger (via context, request data, local variables, etc.), it’s first converted to a string using the `String()` function.

For instance, given a `User` object which defines the `#to_s` method to return the user’s email address:

```ruby
class User < ApplicationRecord
  def to_s
    email
  end
end


user = User.create(email: "user@example.com")


Honeybadger.context({ user: user })
```

…Honeybadger will display the context as:

```json
{
  "user": "user@example.com"
}
```

If this value is undesirable (since there’s no way to know the class of the object), the `#to_honeybadger` method can be defined to customize the value that is reported to Honeybadger:

```ruby
class User < ApplicationRecord
  def to_s
    email
  end


  def to_honeybadger
    "#<User email=#{ email }>"
  end
end
```

…now the context will display as:

```json
{
  "user": "#<User email=user@example.com>"
}
```

Note that while by default the contents of `#inspect` are filtered to prevent leaking sensitive attributes, attributes are **not** filtered when returning `#inspect` from `#to_honeybadger`, so it’s always best to explicitly interpolate the attributes that you want to display unless you know that the inspected output will never contain sensitive information.

---

## Try Honeybadger for FREE

Intelligent logging, error tracking, and Just Enough APM™ in one dev-friendly platform. Find and fix problems before users notice.

[Start free trial](https://app.honeybadger.io/users/sign_up)

[See plans and pricing](https://www.honeybadger.io/plans/)
