creating array of hashes

I have a problem,

please check the code

Fields = Array.new
Fields [0] = “sno”
Fields [1] = “username”
Fields [2] = “designation”
Fields [3] = “salary”
Fields [4] = “dob”
Fields [5] = “email”

Fields [6] = “doj”

These are the fields of the object ‘Employee’

The Employees array contains of the set of employee objects…

I need to have the array of hashes as [{employee_record1},{employee_record2}… n records]

For this i tried as the…

result = []

for employee in Employees
res = {}
for field in fields
res << { field => employee.send(field)}
end
result << res
end

But it is not working…

Finally i have to replace the ‘result’ with the PDF::SimpleTable.data through the statement

=> table.data.replace result

which accepts only the hashes… whose columns are the keys and the column data as values

Please Help me Thank You

Hi - see below...

hema gonaboina wrote:
...

I need to have the array of hashes as
[{employee_record1},{employee_record2}...... n records]

For this i tried as the...

result = []

for employee in Employees
res = {}
    for field in fields

You used 'Fields' above instead of 'fields' here.

      res << { field => employee.send(field)}

res[field] = employee.send(field)

'res' is a hash. You build it by setting key/value pairs not pushing
onto a sequential array.
That should probably do it.

Some other things that might be of interest:
   employee.attributes
will give you a hash of all the fields and their values for an
employee object but you might only be wanting a subset. (You could
'delete' them.)
   Employee.column_names
will give you an array of all the column names.