<div dir="ltr"><div><span style="color:rgb(80,0,80)">Andy, James - thanks for the responses. </span></div><div><span style="color:rgb(80,0,80)"><br></span></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">> I would be inclined to first ask yourself what your goal is. If you just need to produce an audit trail you may not need all the versioning and ability to undo etc. I would think about performance and database load if you are building something that will have a heavy load or is it going to be more of a boutique app where you can think about performance later.<br>

<br>
</div>Personally I haven't had the occasion to use paper_trail at scale / under load.  However by design it's easy to archive or remove old versions; and you can use a table per versioned model, if you want, to help keep things manageable.<br>

<br>
Finally it's worth mentioning that paper_trail is still actively developed – thanks to @fullbridge-batkins – so if you run into a problem you'll receive prompt support.<br></blockquote><div><br></div><div>This is great to hear. Even without full support for has_* associations it looks great (that said I have some thoughts about how this can be implemented which I will share via github)</div>
<div><br></div><div>My intention is to use it roughly as follows:</div><div><div><ol><li>Every model has_paper_trail<br></li><li>No model can ever be destroyed (enforced via a before_destroy callback)</li><li>Each model therefore has a state field in lieu of point 2 (but clearly the state can be more complicated)</li>
</ol></div>My use case is stronger than a simple audit trail - whilst we will never need to be able to rollback, we will need to be able to see object (and association) state  at a point in time/version (c.f. TimeMachine)</div>
</div><div class="gmail_extra"><br></div>Best,</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Paul<br>-- <br><div dir="ltr"><div>+447748 105236<br></div><a href="mailto:paul@myitcv.org.uk" target="_blank">paul@myitcv.org.uk</a></div>

</div></div>