aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorPrathamesh Sonpatki <csonpatki@gmail.com>2016-01-16 12:47:26 +0530
committerPrathamesh Sonpatki <csonpatki@gmail.com>2016-01-16 12:47:26 +0530
commit8126925447b6ba2e26c4bca4b4e10fb99803483b (patch)
tree0beb18b3cb4b05ade837ba4402fa900aa269cf5b /activerecord/test
parentd3e2f1069857d278d162af2d3de1d9a3c3197f4b (diff)
downloadrails-8126925447b6ba2e26c4bca4b4e10fb99803483b.tar.gz
rails-8126925447b6ba2e26c4bca4b4e10fb99803483b.tar.bz2
rails-8126925447b6ba2e26c4bca4b4e10fb99803483b.zip
Fix ActiveRecord::Relation#cache_key for loaded empty collection
- Before this patch if we try to find cache_key of a loaded but empty collection it used to give error because of trying to call `updated_at` on `nil` value generated by `collection.max_by(&timestamp_column).public_send(timestamp_column)`. - This commit fixes above error by checking if size is greater than zero or not.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/collection_cache_key_test.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/test/cases/collection_cache_key_test.rb b/activerecord/test/cases/collection_cache_key_test.rb
index 53058c5a4a..93e7b9cff6 100644
--- a/activerecord/test/cases/collection_cache_key_test.rb
+++ b/activerecord/test/cases/collection_cache_key_test.rb
@@ -66,5 +66,13 @@ module ActiveRecord
developers = projects(:active_record).developers
assert_match(/\Adevelopers\/query-(\h+)-(\d+)-(\d+)\Z/, developers.cache_key)
end
+
+ test "cache_key for loaded collection with zero size" do
+ Comment.delete_all
+ posts = Post.includes(:comments)
+ empty_loaded_collection = posts.first.comments
+
+ assert_match(/\Acomments\/query-(\h+)-0\Z/, empty_loaded_collection.cache_key)
+ end
end
end