Merge pull request #850 from airblade/clarify_docs_undelete_example
Docs: clarify the un-deletion example
This commit is contained in:
commit
5a88c96141
|
@ -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:
|
Undeleting is just as simple:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
widget = Widget.find 42
|
widget = Widget.find(42)
|
||||||
widget.destroy
|
widget.destroy
|
||||||
# Time passes....
|
# Time passes....
|
||||||
widget = PaperTrail::Version.find(153).reify # the widget as it was before destruction
|
versions = widget.versions # versions ordered by versions.created_at, ascending
|
||||||
widget.save # the widget lives!
|
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]
|
You could even use PaperTrail to implement an undo system, [Ryan Bates has!][3]
|
||||||
|
|
|
@ -155,6 +155,24 @@ describe Widget, type: :model do
|
||||||
versions_for_widget = PaperTrail::Version.with_item_keys("Widget", widget.id)
|
versions_for_widget = PaperTrail::Version.with_item_keys("Widget", widget.id)
|
||||||
assert_equal 2, versions_for_widget.length
|
assert_equal 2, versions_for_widget.length
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
describe "#paper_trail.originator" do
|
describe "#paper_trail.originator" do
|
||||||
|
|
Loading…
Reference in New Issue