object cloning with relations

hello,
i have a problem with cloning objects.
the cloning of the objects is not really a problem.
i can do that like this:

def ActiveRecord::Base.clone(country_id)
  cloneObj = self.find(:first, :conditions => "country_id = 1")
  newObj = self.new
  newObj.save
  newObj = cloneObj.dup
  newObj.country_id = country_id
  newObj.save
end

the problem is that i would like to generalize the cloning of the
has_and_belongs_to_many relations, too.

so instead of doing:

cloneObj.collection.each do |foo|
  newObj.collection << foo
end

in each and every model that has collections i would rather do that on
an abstract level, too.

so i think my question is: is there a way to find out if the class has
has_many_and_belongs_to_many relations? and if so is there a way to use
that to assign the collections to the "cloned" objects as a general
extension of ActiveRecord::Base, like the clone method above?

thanks for looking into that :slight_smile:

kind regards,
alexander