about summary refs log tree commit diff
path: root/app/controllers/concerns
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-03-18 00:41:32 +0100
committerGitHub <noreply@github.com>2021-03-18 00:41:32 +0100
commit5027abecd1e5e511064de75fb5248139e1c8fe23 (patch)
tree52325b75c25018397019ffb41593109b52683ea8 /app/controllers/concerns
parent43eff898a0b0f31aaf042d9d387aaece2627a01d (diff)
Fix cache_collection crashing when given an empty collection (#15921)
* Fix cache_collection crashing when given an empty collection

* Add tests
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r--app/controllers/concerns/cache_concern.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb
index 3fb4b962a..05e431b19 100644
--- a/app/controllers/concerns/cache_concern.rb
+++ b/app/controllers/concerns/cache_concern.rb
@@ -31,7 +31,9 @@ module CacheConcern
   def cache_collection(raw, klass)
     return raw unless klass.respond_to?(:with_includes)
 
-    raw                    = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation)
+    raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation)
+    return [] if raw.empty?
+
     cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id)
     uncached_ids           = raw.map(&:id) - cached_keys_with_value.keys