ここで非常に単純なものが欠けている可能性がありますが、何が理解できません。
単純なアクティブ レコード クエリをキャッシュしようとしていますが、キャッシュにアクセスするたびに、DB に対してクエリが再度実行されます。
コントローラーコード:
products = Rails.cache.read("search_results")
if products
render :text => products[0].id
else
products = Product.where('name LIKE ?", 'product_name?')
Rails.cache.write("search_results", products)
end
2 番目の呼び出しでは、else ブロックではなく if ブロックに到達することがわかりますが、製品に触れようとすると (レンダリングなど)、DB へのアクティブなレコード呼び出しも表示されます。
私は何が欠けていますか?