instance method fetch_multi

Ruby on Rails 4.2.9

Since v4.1.16

Available in: v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

fetch_multi(*names)

Fetches data from the cache, using the given keys. If there is data in the cache with the given keys, then that data is returned. Otherwise, the supplied block is called for each key for which there was no data, and the result will be written to the cache and returned.

Options are passed to the underlying cache implementation.

Returns a hash with the data for each of the names. For example:

cache.write("bim", "bam")
cache.fetch_multi("bim", "boom") { |key| key * 2 }
# => { "bam" => "bam", "boom" => "boomboom" }

Parameters

names rest
Source
# File activesupport/lib/active_support/cache.rb, line 369
      def fetch_multi(*names)
        options = names.extract_options!
        options = merged_options(options)
        results = read_multi(*names, options)

        names.each_with_object({}) do |name, memo|
          memo[name] = results.fetch(name) do
            value = yield name
            write(name, value, options)
            value
          end
        end
      end

Defined in activesupport/lib/active_support/cache.rb line 369 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::Cache::Store

Type at least 2 characters to search.

↑↓ navigate · open · esc close