# What are folks using these days for "paranoid" deletion?

**URL:** <https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431>\
**Category:** Rails\
**Created:** [May 13, 2008, 4:44am UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431 "2008-05-13T04:44:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 4:44am UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/1 "2008-05-13T04:44:09Z")

</div>

Just curious what people are recommending these days for referential  
integrity, etc. when it comes to record deletion. A while back I  
looked at acts\_as\_paranoid and it looked promising but there were a  
few issues with Rails 2.x as I seem to recall. It also seems like  
that solution has fallen out of favor some and is not as widely used  
anymore.

So what are some of my options if I care about record integrity? At  
times I would like to delete records yet so they are not available for  
future use but still preserve them for previous use.

TIA,

Sean

---

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 4:50am UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/2 "2008-05-13T04:50:01Z")

</div>

On Mon, May 12, 2008 at 9:43 PM, schof [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> future use but still preserve them for previous use.  
> I usually use a “deleted” field. Simple, works.

–  
Greg D.  
[http://destiney.com/](http://destiney.com/)

---

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 4:51am UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/3 "2008-05-13T04:51:11Z")

</div>

I haven’t used anything recently but came across this one today:

> **[GitHub - JackDanger/permanent\_records: Rails Plugin - soft-delete your...](https://github.com/JackDanger/permanent_records/tree/master)**
>
> master

---

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 2:48pm UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/4 "2008-05-13T14:48:46Z")

</div>

> I usually use a “deleted” field. Simple, works.

Simple but tedious and not very DRY. If you have 30+ active record  
models in your application do you really implement this delete check  
for all of them? Any shortcuts you can suggest?

Any other suggestions out there?

---

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 3:34pm UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/5 "2008-05-13T15:34:46Z")

</div>

schof wrote:

> ```
> 
> ```
> 
> > ```
> > I usually use a "deleted" field. Simple, works.
> > ```
> 
> ```
> Simple but tedious and not very DRY. If you have 30+ active record
> models in your application do you really implement this delete check
> for all of them? Any shortcuts you can suggest?
> ```

The named\_scope functionality of Rails 2.1 could simplify this.  

> ```
> Any other suggestions out there?
> ```

  
  

```
--
Jack C.[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
```
  
--~--~---------~--~----~------------~-------~--~----~  
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.   
 To post to this group, send email to removed\_email\_address@domain.invalid   
 To unsubscribe from this group, send email to removed\_email\_address@domain.invalid   
 For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en   
 -~----------~----~----~----~------~----~------~--~---

---

<div class="post-metadata">

**Author:** ![schof](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/8dc957/32.png) [@schof](https://www.ruby-forum.com/u/schof)\
**Post date:** [May 13, 2008, 4:41pm UTC](https://www.ruby-forum.com/t/what-are-folks-using-these-days-for-paranoid-deletion/137431/6 "2008-05-13T16:41:24Z")

</div>

I had a feeling named scope might be helpful here. Thanks for the  
tip. I will look into it.
