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.
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)
p objs
end
objs
end
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.
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|
Probably this object is being reused ----------------^^^
Look at the documentation (or source code) of the method that does the
iteration.
Good luck.
···
p obj.Id
objs << self.new(obj)
p objs
end
objs
end
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.
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.