diff options
author | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-01-16 13:03:07 +0530 |
---|---|---|
committer | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-01-22 11:19:10 +0530 |
commit | 66023eccb66f327d174685686f98955030d820f2 (patch) | |
tree | 865cc3d17a47dc3c05b791b4ed27970996fe2793 /activerecord/lib | |
parent | a688c0317deee754b517f73668ced4ca1523c5a5 (diff) | |
download | rails-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.rb | 10 |
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 |