Object cloning with relations

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 = cloneObj.dup
newObj.country_id = country_id

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

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,