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.