Rails缓存获取散列的所有值

时间:2017-02-21 07:48:31

标签: ruby-on-rails caching memcached dalli

我有一个rails应用程序,我使用memcached和dalli实现缓存。

我将结果存储在这样的哈希

Rails.cache.write("home_stays[#{home_stay['id']}]", home_stay, expires_in: 5.minutes)

我可以使用它的ID获取特定寄宿家庭的价值。

我感到困惑的是如何从缓存中获取所有寄宿家庭。

如果我运行Rails.cache.fetch(“home_stays”),我就没有了。

有没有办法在rails中获取缓存哈希的所有值?

更新: 根据Chakreshwar的建议,我在寄宿家庭模型中添加了以下内容。

  def self.home_stay_cache
    Rails.cache.fetch("all_home_stays",expires_in: 5.minutes) do
      all
    end
  end

在运行HomeStay.home_stay_cache时,我得到了以下内容

Cache read: all_home_stays ({:expires_in=>300 seconds})
Cache generate: all_home_stays ({:expires_in=>300 seconds})
NameError: undefined local variable or method `all' for Homestay:class

1 个答案:

答案 0 :(得分:0)

在模型中写下:  我假设你在HomeStay模型中

HomeStay.home_stay_cache

然后,您可以像{{1}}

一样获取它