0
私はmemcachedとdalliを使ってキャッシュを実装しているレールアプリケーションを持っています。私はこのRailsキャッシュはハッシュのすべての値を取得します
Rails.cache.write("home_stays[#{home_stay['id']}]", home_stay, expires_in: 5.minutes)
のようなハッシュに結果を格納しています
私はそれはIDが使用して特定のホームステイの値を取得することができます。
私が混乱していることは、どのようにしてキャッシュからすべてのホームステイを得ることができるかということです。
Rails.cache.fetch( "home_stays")を実行すると、ゼロになります。
レールにキャッシュされたハッシュのすべての値を取得する方法はありますか?
更新: Chakreshwarの提案によれば、私はホームステイモデルで次のように追加しました。 HomeStay.home_stay_cacheを実行する上で
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
これを試してみてください キャッシュrキャッシュの生成:all_home_stays({:expires_in => 300 seconds}) NoMethodError:#の未定義メソッド 'all ' から(pry: ):13:「ブロックインインデックス」 –
RamanSM
更新された回答を試してください –
うまくいかなかった!無くなった。 – RamanSM