Versioning of objects. Best practice?

Hi,

I have a model which has a few has_many associations. I want the user
let it change (but not delete) including the child objects without
registration. A big problem is that users could use that for spam etc.
Therefor I need a system to revert the changes. I found some
information about it in this group, but I hope there is a better
approach than it was discussed earlier.

If that is not possible I am looking for a plugin which records all
changes with a text, so I could recover the former values manually.

Thanks for your help

Adrian D wrote:

Hi,

I have a model which has a few has_many associations. I want the user
let it change (but not delete) including the child objects without
registration. A big problem is that users could use that for spam etc.
Therefor I need a system to revert the changes. I found some
information about it in this group, but I hope there is a better
approach than it was discussed earlier.

If that is not possible I am looking for a plugin which records all
changes with a text, so I could recover the former values manually.

Try acts_as_versioned[1], I've used it before on applications where the users where to be allowed to delete items, but the admin could recover them later.

It creates another table alongside that of the model, and records a new row for each change, letting you revert back to any previous version.

HTH

Matt

[1] http://ar-versioned.rubyforge.org/

After reading some previous posts about that topic I think
acts_as_versioned is not a solution for models with has_many
associations. Do you know whether it got this additional
functionality?

But I found http://withoutscope.com/2009/5/12/simple-association-versioning-with-acts_as_revisable
which looks interesting. I didn't have enough time to see whether it
is the right solution for me though.