[Todd Breiholz <talanb / gmail.com>, 2006-01-08 04.15 CET] > I must be missing something... > > I've got the following class method. The problem is the line that reads objs > << self.new(obj). The first time through the loop, the objs array looks > correct. After the second iteration however, the objs array contains 2 > copies of the second object created. > > Here is the output from the method: > > "00630000003BqXwAAK" > [00630000003BqXwAAK] > "00630000003awD3AAI" > [00630000003awD3AAI, 00630000003awD3AAI] > > and here is the method: > > def FindAll(criteria) > self.GetAllFields if (defined? @@attribs) == nil > result = @@connection.query([:query, "select #{@@attribs} from #{ > self.to_s} where #{criteria}"]) > objs = [] > result.queryResponse.result.records.each do |obj| > p obj.Id > objs << self.new(obj) Or, more probably ^^^^^^^^ here is the problem :). Try self.class.new if you want a new object of the same class as self. > p objs > end > objs > end > > Thanks! > > Todd Breiholz