# How to cycle through an instance

**URL:** <https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791>\
**Category:** Ruby\
**Created:** [December 16, 2008, 9:47pm UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791 "2008-12-16T21:47:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![tharrisx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19adc/32.png) [@tharrisx](https://www.ruby-forum.com/u/tharrisx)\
**Post date:** [December 16, 2008, 9:47pm UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791/1 "2008-12-16T21:47:08Z")

</div>

Hi there,

I’m sorry for this noob question (but at least it must be a quick one  
for you guys):

I have an instance of an object in my database and need to get out every  
element of it, like this:

# Example: model = student

firstname = Fred  
lastname = Williams  
streetname = NULL  
city = NULL  
date of birth = 12.12.1934  
…  
(until there is no more column name left for this model)

How do I correctly/efficiently cycle through this one?

Thank you very much for your help!  
Tom

---

<div class="post-metadata">

**Author:** ![tharrisx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19adc/32.png) [@tharrisx](https://www.ruby-forum.com/u/tharrisx)\
**Post date:** [December 16, 2008, 10:30pm UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791/2 "2008-12-16T22:30:29Z")

</div>

Tom Ha wrote:

> I have an instance of an object in my database and need to get out every  
> element of it, like this:
> 
> # Example: model = student
> 
> firstname = Fred  
> lastname = Williams  
> streetname = NULL  
> city = NULL  
> date of birth = 12.12.1934  
> …  
> (until there is no more column name left for this model)
> 
> How do I correctly/efficiently cycle through this one?

Depends on what ORM you are using.

If it’s ActiveRecord, try obj.attributes

(ActiveRecord questions probably best asked on the Rails mailing list  
though)

---

<div class="post-metadata">

**Author:** ![tharrisx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19adc/32.png) [@tharrisx](https://www.ruby-forum.com/u/tharrisx)\
**Post date:** [December 16, 2008, 10:36pm UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791/3 "2008-12-16T22:36:50Z")

</div>

Thanks a lot !

---

<div class="post-metadata">

**Author:** ![tharrisx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19adc/32.png) [@tharrisx](https://www.ruby-forum.com/u/tharrisx)\
**Post date:** [December 16, 2008, 11:00pm UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791/4 "2008-12-16T23:00:39Z")

</div>

Have you try something like this:

@student = Student.find(params[:id])

@student.attribute\_names.each do |attr\_name|  
puts “#{attr\_name} =\> #{@student.attribute[attr\_name]}\n”  
end

or

puts @student.attribute\_names.map { |attr\_name| “#{attr\_name} =\> #  
{@student.attribute[attr\_name]}”}.join("\n")

---

<div class="post-metadata">

**Author:** ![tharrisx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19adc/32.png) [@tharrisx](https://www.ruby-forum.com/u/tharrisx)\
**Post date:** [December 17, 2008, 10:27am UTC](https://www.ruby-forum.com/t/how-to-cycle-through-an-instance/155791/5 "2008-12-17T10:27:51Z")

</div>

Cool, thanks a bunch!
