Hi Paul, Alternatively, if your data are very sensible you can avoid updating them and add a new record each time and keep track of each state of your objects. With the ancestry gem, it wouldn't probably be too hard to do it however I haven't done it myself :).
2013/5/3 Paul Annesley <[email protected]> > Thanks Simon, sounds sensible. > > — Paul > > > On 03/05/2013, at 3:49 PM, Simon Russell <[email protected]> wrote: > > > I've had a look at most of those gems over the years; I've been on a > > project that used Papertrail and they weren't enjoying it that much. > > I've also done the "it can't be that hard, I'll just..." approach. > > > > I'd say if it's for auditing purposes then using a gem might get you > > by; if it's actually part of your model, then I'd just design it in. > > I've also worked on a project that took that did that, and while there > > was definitely some overhead, it forced us to think about exactly what > > the relationships between the versions, and relationships between > > identities (the thing that is versioned). Personally, I'd say that if > > versioning has business value, then this is the right approach; if it > > doesn't, then don't do it. > > > > It kind of sounds like you're trying to get a complex awesome feature > > for nearly-free, which tends to not turn out all that well. > > > > Other people will probably have other opinions... > > > > > > > > On Fri, May 3, 2013 at 3:42 PM, Paul Annesley <[email protected]> wrote: > >> > >> On 03/05/2013, at 3:37 PM, Simon Russell <[email protected]> wrote: > >> > >>> What's your end goal? Auditing, or something else? > >> > >> The goal is to be able to update certain information in certain models > without destroying the previous information. > >> > >> Auditing (offline / non-runtime) is one use-case. > >> Additionally there may be runtime dependencies on past versions. > >> > >> As you can probably tell, it's not entirely clear in my head yet. > >> I just know there'll be information being updated where I want to > retain the prior versions. > >> > >> — Paul > >> > >> > >>> > >>> On Fri, May 3, 2013 at 3:33 PM, Paul Annesley <[email protected]> > wrote: > >>>> Any advice on tools or approaches for versioning ActiveRecord models? > >>>> i.e. track changes to a model such that a previous version of that > model can be loaded. > >>>> > >>>> Some options from > https://www.ruby-toolbox.com/categories/Active_Record_Versioning > >>>> > >>>> https://github.com/airblade/paper_trail > >>>> Looks reasonably active, last commit a month ago. > >>>> Not sure about Rails 4 compatibility. > >>>> > >>>> https://github.com/collectiveidea/audited > >>>> Some activity 2 days ago, but 6 months before that. > >>>> Not sure about Rails 4 compatibility. > >>>> > >>>> https://github.com/technoweenie/acts_as_versioned > >>>> Last activity over a year ago. > >>>> Last release more than two years ago. > >>>> > >>>> Alternatively it would be pretty simple to do manually: > >>>> Pick the attributes that I want to version, > >>>> represent those in a new associated model, > >>>> create a new instance of that model for each change, > >>>> consider the most recent one the current version. > >>>> > >>>> Any experience or tips? > >>>> > >>>> — Paul > >>>> > >> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby or Rails Oceania" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/rails-oceania?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "Ruby or Rails Oceania" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rails-oceania?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
