# Print an instance variable?

**URL:** <https://www.ruby-forum.com/t/print-an-instance-variable/60765>\
**Category:** Rails\
**Created:** [January 10, 2006, 5:04pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765 "2006-01-10T17:04:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:04pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/1 "2006-01-10T17:04:28Z")

</div>

Is there a way to print out an instance variable (@something) so you can  
see:

1: what it contains  
2: how it’s mapped together

??

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:06pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/2 "2006-01-10T17:06:18Z")

</div>

puts @something

??

require ‘pp’

pp @something

I’m not sure about #2, what do you mean?

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:08pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/3 "2006-01-10T17:08:26Z")

</div>

debug(@something) ?

On 10/01/06, David Mr. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> * * *
> 
> Rails mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

–  
Rasputin :: Jack of All Trades - Master of Nuns  
[http://number9.hellooperator.net/](http://number9.hellooperator.net/)

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:18pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/4 "2006-01-10T17:18:45Z")

</div>

#2 would be table associations. Like if I have a @something that  
has\_many other @somethings.

Jules J. wrote:

> puts @something
> 
> ??
> 
> require ‘pp’
> 
> pp @something
> 
> I’m not sure about #2, what do you mea

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:32pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/5 "2006-01-10T17:32:35Z")

</div>

Depending on where you want to know. Setting a breakpoint show a lot.

[http://wiki.rubyonrails.com/rails/pages/HowtoDebugWithBreakpoint](http://wiki.rubyonrails.com/rails/pages/HowtoDebugWithBreakpoint)

When you set a breakpoint in your code and have a terminal connect  
simply type  
the variable and you got lot’s to read.

Regards,

Gerard.  
On Tuesday 10 January 2006 17:04, David Mr. tried to type something  
like:

> Is there a way to print out an instance variable (@something) so you can  
> see:
> 
> 1: what it contains  
> 2: how it’s mapped together
> 
> ??

–  
“Who cares if it doesn’t do anything? It was made with our new  
Triple-Iso-Bifurcated-Krypton-Gate-MOS process …”

My $Grtz =~ Gerard;  
~  
:wq!

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 5:29pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/6 "2006-01-10T17:29:33Z")

</div>

On Tue, 2006-01-10 at 17:04 +0100, David Mr. wrote:

> Is there a way to print out an instance variable (@something) so you can  
> see:
> 
> 1: what it contains  
> 2: how it’s mapped together

```
<%= @foo.inspect %>
```
 will show the contents of @foo. In turn,

if Foo has\_many :bars then you will see that .bars is of the proper  
class for bars. Beyond that, you can use breakpointers and play with  
the environment to your hearts content.

bear in mind, if you @foo.bars.inspect you are calling .bars into  
existence, you can’t @foo.inspect and see the content of .bars, since  
you haven’t asked for it to exist (to read the data from the database).  
If rails/ruby assumed such things it would be infinitely pulling all of  
your data from the DB, yeech.

–

-Matthew B.  
removed\_email\_address@domain.invalid :: 607 227 0871  
Resume and Portfolio @ [http://madhatted.com](http://madhatted.com)

---

<div class="post-metadata">

**Author:** ![pezdude](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pezdude](https://www.ruby-forum.com/u/pezdude)\
**Post date:** [January 10, 2006, 6:27pm UTC](https://www.ruby-forum.com/t/print-an-instance-variable/60765/7 "2006-01-10T18:27:45Z")

</div>

Awesome. That worked great thanks!

Matthew B. wrote:

> ```
> <%= @foo.inspect %>
> ```
> will show the contents of @foo. In turn,
> 
> if Foo has\_many :bars then you will see that .bars is of the proper  
> class for bars. Beyond that, you can use breakpointers and play with  
> the environment to your hearts content.
