From: MonkeeSage Date: 2006-09-12T13:35:29+09:00 Subject: Re: find_all help kovax wrote: > Hello, > > I have an array filled with employee objects that are defined like > this: > > Employee = Struct.new(:name, :age) > > I would like to use the find_all method on an array of employee objects > to find all employee objects with an age > 18. I tried the following > code but I was unsuccessful: > > employees = [] > employees.add Employee.new("joe" , 4) > employees.add Employee.new("sam" , 20) > > employees.select { Employee.age > 18 } > > Any help or pushes in the right direction would be really appreciated. Hi there, In the block to select you don't want to use the Employee object, you want to use the instances you created of it, which will be passed in through the block argument. Also, I don't know if add is a custom method you made, or mabye an alias for push or <<, or if you are asking about that too, so in this code I use push: Employee = Struct.new(:name, :age) employees = [] employees.push Employee.new("joe" , 4) employees.push Employee.new("sam" , 20) adults = employees.select { |e| e.age > 18 } adults.each { |e| puts "#{e.name}, #{e.age}" } # => sam, 20 Regards, Jordan