diff options
author | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-01-16 12:47:26 +0530 |
---|---|---|
committer | Prathamesh Sonpatki <csonpatki@gmail.com> | 2016-01-16 12:47:26 +0530 |
commit | 8126925447b6ba2e26c4bca4b4e10fb99803483b (patch) | |
tree | 0beb18b3cb4b05ade837ba4402fa900aa269cf5b /activerecord/test | |
parent | d3e2f1069857d278d162af2d3de1d9a3c3197f4b (diff) | |
download | rails-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(×tamp_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.rb | 8 |
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 |