aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2011-04-03 20:09:00 -0300
committerJosé Valim <jose.valim@gmail.com>2011-04-04 10:48:12 +0200
commitb35617235d43bdb32016a623044e7f4005879969 (patch)
tree6a007f2bf9678fa1c1c5c64c8980032934fbefb0 /activerecord/lib/active_record/relation.rb
parent16e5d158c23af1c7ca2c7aa32d964db97cb9a4f7 (diff)
downloadrails-b35617235d43bdb32016a623044e7f4005879969.tar.gz
rails-b35617235d43bdb32016a623044e7f4005879969.tar.bz2
rails-b35617235d43bdb32016a623044e7f4005879969.zip
Use IM when trying to load records using ID.
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 896daf516e..75269c85d9 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -194,6 +194,7 @@ module ActiveRecord
# # The same idea applies to limit and order
# Book.where('title LIKE ?', '%Rails%').order(:created_at).limit(5).update_all(:author => 'David')
def update_all(updates, conditions = nil, options = {})
+ IdentityMap.repository[symbolized_base_class].clear if IdentityMap.enabled?
if conditions || options.present?
where(conditions).apply_finder_options(options.slice(:limit, :order)).update_all(updates)
else
@@ -322,6 +323,7 @@ module ActiveRecord
# If you need to destroy dependent associations or call your <tt>before_*</tt> or
# +after_destroy+ callbacks, use the +destroy_all+ method instead.
def delete_all(conditions = nil)
+ IdentityMap.repository[symbolized_base_class] = {} if IdentityMap.enabled?
if conditions
where(conditions).delete_all
else
@@ -353,6 +355,7 @@ module ActiveRecord
# # Delete multiple rows
# Todo.delete([2,3,4])
def delete(id_or_array)
+ IdentityMap.remove_by_id(self.symbolized_base_class, id_or_array) if IdentityMap.enabled?
where(primary_key => id_or_array).delete_all
end