comparing and copying objects

Hi,

I wonder if there is a quick way to do this.

companyA has 2 employees "a", "b"

companyB has 3 employees "a", "b", "c"

I basically want to merge companyA employess with companyB employees so when i look at companyA the employees will equal "a", "b", "c"

i know i could do something like companyA.employees = companyB.employees but this would just overwrite companyA employees so if companyA had more employees than companyB i would lose the employees companyA had that companyB didnt.

I think companyA.employees << companyB.employees would just mash them together and give me duplicates.

The only other way i can think off is a nasty double loop that compares each object 1 by 1 and then starts again going through the process.

JB

what about using the "+" and "uniq!" methods (associations are just arrays after all)?

companyA = (companyA.employees + companyB.employees).uniq!

This may be brittle because I'm counting on the fact that the association is an array.

should be:

companyA.employees = (companyA.employees + companyB.employees).uniq!

what about using the "+" and "uniq!" methods (associations are just arrays after all)?

companyA = (companyA.employees + companyB.employees).uniq!

This may be brittle because I'm counting on the fact that the association is an array.

It also won't work as uniq! returns nil if there are no duplicates.
Use uniq instead. There's also the | operator irb(main):005:0> [1,2,3]|[1,2,3,4,5] => [1, 2, 3, 4, 5]

Fred

Thanks for correcting the "un. The | operator is more succinct. Thanks
Fred.