我想在Rails中缓存整个JSON响应。 JSON已使用ActiveModel序列化。我不想每次都序列化它。这是一个复杂的大型列表,不会经常更改。
现在我有
def index
bar = Bar.find(params[:bar_id])
foos = Foos.where(bar_id = bar.id)
render json: foos, status, :ok
end
我想做类似的事情
def index
bar = Bar.find(params[:bar_id])
response = Rails.cache.fetch(request.env['PATH_INFO']) do
foos = Foos.where(bar_id = bar.id)
render json: foos, status: :ok
end
response
end
我该怎么做?
编辑:为澄清起见,我想保存已构建的内容,就像缓存已模板化的视图一样。原因是我有数百条这样的记录,每个记录又有大约十二个子记录,每个子记录都有自己的六个子记录。平均而言,其中的大约一半最终必须通过db调用重新加载。序列化程序还必须将其中一些属性模板化为HTML或运行项目计数,并对其中的许多属性进行排序。因为从总体上讲,这是API上最常见的端点,所以我绝对希望所有已序列化的内容都被缓存。