| Module | ActsAsRevisionable::ClassMethods |
| In: |
lib/acts_as_revisionable.rb
|
Load a revision for a record with a particular id. If this revision has association it will not delete associated records added since the revision was added if you save it. If you want to save a revision with associations properly, use restore_revision!
# File lib/acts_as_revisionable.rb, line 36
36: def restore_revision (id, revision)
37: revision = RevisionRecord.find_revision(self, id, revision)
38: return revision.restore if revision
39: end
Load a revision for a record with a particular id and save it to the database. You should always use this method to save a revision if it has associations.
# File lib/acts_as_revisionable.rb, line 43
43: def restore_revision! (id, revision)
44: record = restore_revision(id, revision)
45: if record
46: record.store_revision do
47: save_restorable_associations(record, revisionable_associations)
48: end
49: end
50: return record
51: end
Returns a hash structure used to identify the revisioned associations.
# File lib/acts_as_revisionable.rb, line 54
54: def revisionable_associations (options = acts_as_revisionable_options[:associations])
55: return nil unless options
56: options = [options] unless options.kind_of?(Array)
57: associations = {}
58: options.each do |association|
59: if association.kind_of?(Symbol)
60: associations[association] = true
61: elsif association.kind_of?(Hash)
62: association.each_pair do |key, value|
63: associations[key] = revisionable_associations(value)
64: end
65: end
66: end
67: return associations
68: end