Declare this in your model to track every create, update, and destroy. Each
version of the model is available in the `versions` association.
Options:
- :on - The events to track (optional; defaults to all of them). Set to an
array of `:create`, `:update`, `:destroy` as desired.
- :class_name - The name of a custom Version
class. This class should inherit from `PaperTrail::Version`.
- :ignore - An array of attributes for which a new `Version` will not be created if only they
change. It can also aceept a Hash as an argument where the key is the
attribute to ignore (a `String` or `Symbol`), which will only be ignored if
the value is a `Proc` which returns truthily.
- :if, :unless - Procs that allow to specify conditions when to save versions
for an object.
- :only - Inverse of `ignore`. A new `Version`
will be created only for these attributes if supplied it can also aceept a
Hash as an argument where the key is the attribute to track (a `String` or
`Symbol`), which will only be counted if the value is a `Proc` which
returns truthily.
- :skip - Fields to ignore completely. As with `ignore`, updates to these
fields will not create a new `Version`. In
addition, these fields will not be included in the serialized versions of
the object whenever a new `Version` is
created.
- :meta - A hash of extra data to store. You must add a column to the
`versions` table for each key. Values are objects or procs (which are
called with `self`, i.e. the model with the paper trail). See
`PaperTrail::Controller.info_for_paper_trail` for how to store data from
the controller.
- :versions - The name to use for the versions association. Default is
`:versions`.
- :version - The name to use for the method which returns the version the
instance was reified from. Default is `:version`.
- :save_changes - Whether or not to save changes to the object_changes column
if it exists. Default is true