Forum: Ruby on Rails creating array of hashes

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
C6b3fb1b16a9878bc793a90bdc1c9799?d=identicon&s=25 Hema Gonaboina (hema_mca)
on 2008-11-27 11:29
(Received via mailing list)
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
9b4c04c050122bcea16a6f3376d680fa?d=identicon&s=25 Daniel Bush (danb)
on 2008-11-27 12:53
(Received via mailing list)
Hi - see below...

hema gonaboina wrote:
...
>     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.


> which accepts only the hashes... whose columns are the keys and the column
> data as values
>
>
>  Please Help me Thank You

--
Daniel Bush
This topic is locked and can not be replied to.