Custom method in model to return an object

Hi! I am new to rails(and ruby) and I have a C background, and I would
like some help.

In the database I have a field named ‘body’ that has an XML in it. The
method I created in the model looks like this:

def self.get_personal_data_module(person_id)
person_module = find_by_person_id(person_id)
item_module = Hpricot(person_module.body)
personal_info = Array.new
personal_info = {:studies => (item_module/“studies”).inner_html,
:birth_place => (item_module/“birth_place”).inner_html,
:marrital_status => (item_module/“marrital_status”).inner_html}
return personal_info
end

I want the function to return an object instead of an array. So I can
use Module.studies instead of Model[:studies].

Thank you for your time.
Silviu

I want the function to return an object instead of an array. So I can
use Module.studies instead of Model[:studies].

you can create a new class and return it:

class PersonalInfo
attr_accessor :studies, :birth_place, :marital_status
end

def self.get_personal_data_module(person_id)
person_module = find_by_person_id(person_id)
item_module = Hpricot(person_module.body)
personal_info = PersonalInfo.new
personal_info.studies = (item_module/“studies”).inner_html
personal_info.birth_place =
(item_module/“birth_place”).inner_html
personal_info.marrital_status =
(item_module/“marrital_status”).inner_html}
return personal_info
end