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.