我在Rails控制器中有一个动作,它接受一些用于过滤和分页的参数。返回的响应仅采用JSON格式,并且没有视图模板。
我知道可以使用caches_action和cache_path对操作和参数进行缓存。我不理解但无法找到的是如何在所有参数中使该操作的缓存无效。缓存的操作类似于"索引"操作,如果存在创建/更新/删除,则分页会受到影响,因此必须删除该操作的整个缓存。
这一定是一个相当普遍的问题,但我还无法确定它是如何解决的。
答案 0 :(得分:0)
我能想到的唯一方法是使用google搜索来创建cache_path属性的自定义缓存键:
负面的副作用是即使存在缓存命中也会有数据库调用。 积极的副作用是缓存是自我过期的,因为我使用memcached和memcached使用LRU替换。
我觉得我正在重新发明轮子,但我找不到可靠的文档来更好地解决这个问题。