Categories: None [Edit]
soft_delete-workbar
# Soft Delete
> In a production app, you should probably never really delete anything.
[source](https://twitter.com/theebeastmaster/status/966870021099180034)
A soft-delete marks a record as deleted, and keeps it in the database
for historical reference.
## Installation
Add this line to your application's Gemfile:
```ruby
gem "soft_delete-workbar", require: "soft_delete"
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install soft_delete-workbar
## Usage
Safely "delete" records from your database without losing them permanently.
* Add SoftDelete to a model
```
class MyModel < ActiveRecord::Base
include SoftDelete
end
```
* Add a `deleted_at` column to the model's database table
```
rails g migration AddSoftDeleteToMyModels deleted_at:timestamp
```
* Safely call `MyModel#delete` without losing the record forever
## Methods
Please see the `SoftDelete` module and the associated tests for a description of
the methods that will be added to your model.
* `.not_deleted` - records without a deleted_at timestamp
* `.deleted` - records with a deleted_at timestamp
* `#delete` - set the deleted_at timestamp
* `#delete!` - delete the record from the database
* `#destroy` - set the deleted_at timestamp, and run callbacks
* `#destroy!` - delete the record from the database, and run callbacks
* `#restore` - set the deleted_at timestamp to nil
It will be necessary to exclude deleted records when querying the model.
Use the `not_deleted` scope that now exists on the model.
```ruby
class MyModelsController < ApplicationController
def index
@my_models = MyModel.not_deleted
end
end
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run
`rake spec` to run the tests. You can also run `bin/console` for an interactive
prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To
release a new version, update the version number in `version.rb`, and then run
...
Total
Ranking: 132,715 of 183,052
Downloads: 4,182
Daily
Ranking: 97,699 of 183,043
Downloads: 0
Downloads Trends
Ranking Trends
Num of Versions Trends
Popular Versions (Major)
Popular Versions (Major.Minor)
Depended by
Rank | Downloads | Name |
---|