活动模型序列化程序 - 未定义方法'缓存'

时间:2015-03-23 09:16:38

标签: ruby-on-rails caching active-model-serializers

我尝试使用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

1 个答案:

答案 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,关于此事。