diff options
author | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2016-09-17 10:12:20 +0900 |
---|---|---|
committer | yuuji.yaginuma <yuuji.yaginuma@gmail.com> | 2016-09-17 16:34:38 +0900 |
commit | 97544ed1770bf3c169f3b8f3711917bbf37045bc (patch) | |
tree | dfb12be6ee894ce387b6428dae107d38e1856a47 /activesupport/lib | |
parent | 84650022d574d24d6adea6ad941ec3ca57d2a2f0 (diff) | |
download | rails-97544ed1770bf3c169f3b8f3711917bbf37045bc.tar.gz rails-97544ed1770bf3c169f3b8f3711917bbf37045bc.tar.bz2 rails-97544ed1770bf3c169f3b8f3711917bbf37045bc.zip |
add check of argument
`#fetch_multi` in case did not cache hit, to write a cache using the block value.
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/cache.rb#L383..L384
Therefore, block is a need to pass always, I think should check first.
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/cache.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/cache.rb b/activesupport/lib/active_support/cache.rb index 8ef91fa3f0..80a34a17ed 100644 --- a/activesupport/lib/active_support/cache.rb +++ b/activesupport/lib/active_support/cache.rb @@ -361,6 +361,9 @@ module ActiveSupport # 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. + # Therefore, you need to pass a block that returns the data to be written + # to the cache. If you do not want to write the cache when the cache is + # not found, use #read_multi. # # Options are passed to the underlying cache implementation. # @@ -374,6 +377,8 @@ module ActiveSupport # # "unknown_key" => "Fallback value for key: unknown_key" } # def fetch_multi(*names) + raise ArgumentError, "Missing block: `Cache#fetch_multi` requires a block." unless block_given? + options = names.extract_options! options = merged_options(options) results = read_multi(*names, options) |