# Delete\_all misbehaving in active\_records

**URL:** <https://www.ruby-forum.com/t/delete-all-misbehaving-in-active-records/146057>\
**Category:** Rails\
**Created:** [August 17, 2008, 12:22am UTC](https://www.ruby-forum.com/t/delete-all-misbehaving-in-active-records/146057 "2008-08-17T00:22:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bruparel](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e47774/32.png) [@bruparel](https://www.ruby-forum.com/u/bruparel)\
**Post date:** [August 17, 2008, 12:22am UTC](https://www.ruby-forum.com/t/delete-all-misbehaving-in-active-records/146057/1 "2008-08-17T00:22:58Z")

</div>

I have two tables: feeds and feed\_items in a one-to-many relationship.  
I selecting feeds from the feeds table and populating “many” items in  
the feed\_items table for further processing. This happens in a loop.  
Before starting to populate feed\_items for each feed read in, I execute  
the following statement to wipe feed\_items table clean:

feed\_items.delete\_all

I read the ActiveRecords documentation is that is how I understand it.  
However, something totally different is happening. I see a one Delete  
query each for each row in the feed\_item table as below:

^[[4;35;1mFeedItem Destroy (0.000169)^[[0m ^[[0m DELETE FROM  
`feed_items`  
WHERE `id` = 4989515  
^[[0m  
^[[4;36;1mFeedItem Destroy (0.000178)^[[0m ^[[0;1m DELETE FROM  
`feed_items`  
WHERE `id` = 4989516  
^[[0m  
^[[4;35;1mFeedItem Destroy (0.000168)^[[0m ^[[0m DELETE FROM  
`feed_items`  
WHERE `id` = 4989517  
^[[0m  
^[[4;36;1mFeedItem Destroy (0.000166)^[[0m ^[[0;1m DELETE FROM  
`feed_items`  
WHERE `id` = 4989518  
^[[0m  
^[[4;35;1mFeedItem Destroy (0.000167)^[[0m ^[[0m DELETE FROM  
`feed_items`  
WHERE `id` = 4989519  
^[[0m  
^[[4;36;1mFeedItem Destroy (0.000179)^[[0m ^[[0;1m DELETE FROM  
`feed_items`  
WHERE `id` = 4989520

This gets pretty expensive for a feed with a large number of feed\_items.  
I am using Rails 2.1.0 on an Ubuntu 6.06 machine. Any ideas anyone?

Thanks.

Bharat

---

<div class="post-metadata">

**Author:** ![bruparel](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e47774/32.png) [@bruparel](https://www.ruby-forum.com/u/bruparel)\
**Post date:** [August 17, 2008, 12:38am UTC](https://www.ruby-forum.com/t/delete-all-misbehaving-in-active-records/146057/2 "2008-08-17T00:38:28Z")

</div>

Quoting Bharat R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> I have two tables: feeds and feed\_items in a one-to-many relationship.  
> I selecting feeds from the feeds table and populating “many” items in  
> the feed\_items table for further processing. This happens in a loop.  
> Before starting to populate feed\_items for each feed read in, I execute  
> the following statement to wipe feed\_items table clean:
> 
> feed\_items.delete\_all

Do it for the class, e.g., FeedItem.delete\_all

HTH  
Jeffrey

---

<div class="post-metadata">

**Author:** ![bruparel](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/e47774/32.png) [@bruparel](https://www.ruby-forum.com/u/bruparel)\
**Post date:** [August 17, 2008, 1:23am UTC](https://www.ruby-forum.com/t/delete-all-misbehaving-in-active-records/146057/3 "2008-08-17T01:23:00Z")

</div>

Thanks Jeffery. I just did that and it works! Obviously an oversight.  
Kind regards,  
Bharat
