diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-11-01 10:36:47 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-11-06 03:34:15 +0900 |
commit | e3a295664681ea0480a9c95f6bfc776a113ff926 (patch) | |
tree | fa7bf2efd54dfda044a54d24e82cf352ec0e65a0 /activerecord/test/cases | |
parent | 03ac95a14058a871bff6b78d69c77436544635c6 (diff) | |
download | rails-e3a295664681ea0480a9c95f6bfc776a113ff926.tar.gz rails-e3a295664681ea0480a9c95f6bfc776a113ff926.tar.bz2 rails-e3a295664681ea0480a9c95f6bfc776a113ff926.zip |
Ensure `apply_join_dependency` for `collection_cache_key` if eager-loading is needed
Fixes #30315.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/collection_cache_key_test.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/collection_cache_key_test.rb b/activerecord/test/cases/collection_cache_key_test.rb index c137693211..19d6464a22 100644 --- a/activerecord/test/cases/collection_cache_key_test.rb +++ b/activerecord/test/cases/collection_cache_key_test.rb @@ -73,6 +73,16 @@ module ActiveRecord assert_equal last_developer_timestamp.to_s(ActiveRecord::Base.cache_timestamp_format), $3 end + test "cache_key for relation with includes" do + comments = Comment.includes(:post).where("posts.type": "Post") + assert_match(/\Acomments\/query-(\h+)-(\d+)-(\d+)\z/, comments.cache_key) + end + + test "cache_key for loaded relation with includes" do + comments = Comment.includes(:post).where("posts.type": "Post").load + assert_match(/\Acomments\/query-(\h+)-(\d+)-(\d+)\z/, comments.cache_key) + end + test "it triggers at most one query" do developers = Developer.where(name: "David") |