From 4e13a364a67e02ed0b3b8f69bac84d69632f58f6 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Wed, 21 Mar 2018 14:16:00 +0800 Subject: Fix Cache `read_multi` with local_cache return values. It should returns raw value, not instance of `ActiveSupport::Cache::Entry`. --- activesupport/lib/active_support/cache/strategy/local_cache.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'activesupport/lib/active_support/cache') diff --git a/activesupport/lib/active_support/cache/strategy/local_cache.rb b/activesupport/lib/active_support/cache/strategy/local_cache.rb index e17308f83e..39b32fc7f6 100644 --- a/activesupport/lib/active_support/cache/strategy/local_cache.rb +++ b/activesupport/lib/active_support/cache/strategy/local_cache.rb @@ -55,7 +55,14 @@ module ActiveSupport end def read_multi_entries(keys, options) - Hash[keys.map { |name| [name, read_entry(name, options)] }.keep_if { |_name, value| value }] + values = {} + + keys.each do |name| + entry = read_entry(name, options) + values[name] = entry.value if entry + end + + values end def write_entry(key, value, options) -- cgit v1.2.3