From f5df000078a6e9f9e2e908c3b97797dbf1655f96 Mon Sep 17 00:00:00 2001 From: Jared Beck Date: Tue, 23 Aug 2016 00:26:03 -0400 Subject: [PATCH] Docs: clarify the un-deletion example The integer id (153) was a little confusing. --- README.md | 7 ++++--- spec/models/widget_spec.rb | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e66ac6bd..b5238c77 100644 --- a/README.md +++ b/README.md @@ -516,11 +516,12 @@ Note `version_at` gives you the object, not a version, so you don't need to call Undeleting is just as simple: ```ruby -widget = Widget.find 42 +widget = Widget.find(42) widget.destroy # Time passes.... -widget = PaperTrail::Version.find(153).reify # the widget as it was before destruction -widget.save # the widget lives! +versions = widget.versions # versions ordered by versions.created_at, ascending +widget = versions.last.reify # the widget as it was before destruction +widget.save # the widget lives! ``` You could even use PaperTrail to implement an undo system, [Ryan Bates has!][3] diff --git a/spec/models/widget_spec.rb b/spec/models/widget_spec.rb index 9a858fc8..3023145f 100644 --- a/spec/models/widget_spec.rb +++ b/spec/models/widget_spec.rb @@ -155,6 +155,24 @@ describe Widget, type: :model do versions_for_widget = PaperTrail::Version.with_item_keys("Widget", widget.id) assert_equal 2, versions_for_widget.length end + + it "can have multiple destruction records" do + versions = lambda { |widget| + # Workaround for AR 3. When we drop AR 3 support, we can simply use + # the `widget.versions` association, instead of `with_item_keys`. + PaperTrail::Version.with_item_keys("Widget", widget.id) + } + widget = Widget.create + assert_equal 1, widget.versions.length + widget.destroy + assert_equal 2, versions.call(widget).length + widget = widget.version.reify + widget.save + assert_equal 3, versions.call(widget).length + widget.destroy + assert_equal 4, versions.call(widget).length + assert_equal 2, versions.call(widget).where(event: "destroy").length + end end describe "#paper_trail.originator" do