diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-12-27 19:35:55 +0530 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-12-27 21:15:12 +0530 |
commit | bbdeaae2cac37882b091474ec596ade3de3b5e7c (patch) | |
tree | 342800a91dd01e15ed68607a8b15fe162b984b48 /activerecord/lib/active_record | |
parent | 5cd8818258cf7ce2c90667076d3f61f1c7ed548e (diff) | |
download | rails-bbdeaae2cac37882b091474ec596ade3de3b5e7c.tar.gz rails-bbdeaae2cac37882b091474ec596ade3de3b5e7c.tar.bz2 rails-bbdeaae2cac37882b091474ec596ade3de3b5e7c.zip |
Add relation.destroy_all
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 2 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index a3b123c463..cad75f80e5 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -914,7 +914,7 @@ module ActiveRecord #:nodoc: # Person.destroy_all("last_login < '2004-04-04'") # Person.destroy_all(:status => "inactive") def destroy_all(conditions = nil) - where(conditions).each {|object| object.destroy } + where(conditions).destroy_all end # Deletes the records matching +conditions+ without instantiating the records first, and hence not diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index bec9a88297..4aa460a601 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -175,13 +175,23 @@ module ActiveRecord end end + def destroy_all + to_a.each {|object| object.destroy} + reset + end + def loaded? @loaded end def reload @loaded = false - @records = @first = @last = nil + reset + end + + def reset + @first = @last = nil + @records = [] self end |