我尝试使用Active Model Serializers来缓存JSON,使用我在那里看到的许多指南,他们都建议使用内置的缓存机制,方法如下:
class CacheSerializer < ActiveModel::Serializer
cached
delegate :cache_key, :to => :object
end
这是我的基本序列化程序,所有其他可缓存的序列化程序都应该继承,但是,我总是得到以下内容:
undefined local variable or method `cached' for CacheSerializer:Class
查看文档,我也尝试使用缓存键:&#39; bla-bla&#39;,它提供了相同的未定义方法错误。
我启用了缓存并配置了缓存存储,缓存适用于应用的所有其他部分。
任何想法?
源: https://robots.thoughtbot.com/fast-json-apis-in-rails-with-key-based-caches-and
答案 0 :(得分:1)
缓存活动模型序列化程序版本&gt; = 0.9.0
由于重写,您可以使用内置缓存功能的Rails,因为在较新版本的AMS&gt; =(0.9.0)中尚未实现缓存。
def index
trips = Trip.all
json = cache ['v1', trips] do
render_to_string json: trips
end
render json: json
end
默认情况下,它不能在开发中工作,因为在开发模式下禁用了缓存。
您可以将生产.rb中的配置行复制到development.rb,以测试它是否正常工作:
config.action_controller.perform_caching = true
Github上还提到issue,关于此事。