class Customer
  def descendants
    self.children | self.children.map(&:descendants).flatten
  end
end
| is array union. 
[ "a", "b", "c" ] | [ "c", "d", "a" ]    #=> [ "a", "b", "c", "d" ]
[ "c", "d", "a" ] | [ "a", "b", "c" ]    #=> [ "c", "d", "a", "b" ]