aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2016-01-16 13:03:07 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2016-01-22 11:19:10 +0530
commit66023eccb66f327d174685686f98955030d820f2 (patch)
tree865cc3d17a47dc3c05b791b4ed27970996fe2793 /activerecord/lib
parenta688c0317deee754b517f73668ced4ca1523c5a5 (diff)
downloadrails-66023eccb66f327d174685686f98955030d820f2.tar.gz
rails-66023eccb66f327d174685686f98955030d820f2.tar.bz2
rails-66023eccb66f327d174685686f98955030d820f2.zip
Fix ActiveRecord::Relation#cache_key for relations with no results
- When relations return no result or 0 result then cache_key should handle it gracefully instead of blowing up trying to access `result[:size]` and `result[:timestamp]`. - Fixes #23063.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/collection_cache_key.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/collection_cache_key.rb b/activerecord/lib/active_record/collection_cache_key.rb
index b0e555038e..b20df1c232 100644
--- a/activerecord/lib/active_record/collection_cache_key.rb
+++ b/activerecord/lib/active_record/collection_cache_key.rb
@@ -19,8 +19,14 @@ module ActiveRecord
.unscope(:order)
result = connection.select_one(query)
- size = result["size"]
- timestamp = column_type.deserialize(result["timestamp"])
+ if result.blank?
+ size = 0
+ timestamp = nil
+ else
+ size = result["size"]
+ timestamp = column_type.deserialize(result["timestamp"])
+ end
+
end
if timestamp