Ruby on rails Rails缓存获取散列的所有值

Ruby on rails Rails缓存获取散列的所有值,ruby-on-rails,caching,memcached,dalli,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中获取缓存哈希的

我有一个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
在经营寄宿家庭时,我得到了以下信息

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

在模型中写入以下内容: 我假设你是寄宿家庭

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

然后,你可以像家庭寄宿家庭一样获取它。家庭寄宿家庭缓存

尝试了这个,并得到了缓存读取:所有家庭寄宿家庭({:expires\u in=>300秒})缓存生成:所有家庭寄宿家庭({:expires\u in=>300秒})命名方法错误:未定义的方法
all',from(pry):13:in
索引中的块'@RamanM:我刚刚在我的模型中尝试了这个方法及其工作,所以我需要你的模型来帮助uHad去吃午饭。现在检查问题你还没有使用我的完整代码,你需要编写do块