Deep cloning an ActiveRecord

I have a situation where I want to duplicate an ActiveRecord including
duplication of has_many relationships.

I've seen a few plugins but it seems unclear if they will work on
Rails3. So I was wondering if anyone has a good suggestion for a
plugin they are currently using to do this?

Basically I'm doing this because I have an object that I want to allow
my users to edit. I want to keep a history of the object though. So
I am thinking of duplicating the object and assigning it it's own id.
The duplicated object will essentially be the 'history' so that the
user could go back and see different versions. In order to do this I
need to create duplicate copies of all the underlying has_many
relationships (which may change)


Take a look at acts_as_audited. It is very simple to use and keeps a complete history of the ActiveRecord models you want to keep track of.

There are other versionion tools, but I am not familiar with any: