Hope you can help me with understanding how Ruby / Rails treats arrays
Let’s say I have to arrays of objects. Both are the same kinds of
tomatoes = Fruit.find(:all, :conditions => [ ‘tomato = ?’, true], :limit
fruits = Fruit.find(:all, :limit => 10)
And I want to create an array of these objects called @my_fruits, but I
don’t want the set to contain any duplicates.
In the Ruby API documentation for arrays it shows you can use the |
to perform a union between two arrays, throwing out duplicates.
OK. That sounds good. That’s what I want.
@my_fruits = tomatoes | fruits
98% of the time I’ve found this works in my tests. I don’t get
But I’ve had instances where I do in fact have a row repeat.
Any ideas as to why the union operator doesn’t work in this case?
In my real world ™ example, I’m sorting the database rows randomly,
the data changes frequently. Both arrays contain the same types of
In entirely likely that two arrays can contain the same object.
Is there a performance hit in building an each loop on the likely
the array to test whether the other array ".include?"s the object? Would
this be considered more reliable?
@my_fruits = fruits
tomatoes.each do | fruit |
@my_fruits.push(fruit) unless @my_fruits.include?(fruit)
D. Taylor S.,