如何在Rails中缓存哈希?

时间:2016-05-20 22:55:36

标签: ruby-on-rails ruby caching hash memcached

我正在使用Rails 4.2.1和memcached。我似乎无法缓存哈希值。如何缓存哈希?

"99946".gsub(/[13579]+/) {|s| s.split("").join("-") }.gsub(/[02468]+/) {|s| s.split("").join("*") }
# => "9-9-94*6"

2 个答案:

答案 0 :(得分:3)

检查文档:http://apidock.com/rails/ActiveSupport/Cache/Store/fetch

使用给定的密钥从缓存中获取数据。如果缓存中有给定密钥的数据,则返回该数据。

但你可以使用force with true:

Rails.cache.fetch("development_test", force: true) do
  {'x' => 3}
end

用于重写缓存值

答案 1 :(得分:0)

我能够将哈希缓存为JSON。

def cached_hash
  JSON.parse(
    Rails.cache.fetch("development_test", expires_in: 1.minute) do
      {'x' => 3}.to_json
    end
  )
end