【问题标题】:In Rails 3.1, how can I cache the results of a AR query to a cache?在 Rails 3.1 中,如何将 AR 查询的结果缓存到缓存中?
【发布时间】:2011-11-29 06:28:02
【问题描述】:

对于这样的 AR 查询:

@users = User.find(some_conditions_here)

那么 @users 是一个 AR 数组,我想缓存它。

如果我这样做,在一个控制器调用中,一个

Rails.cache.write('foo',@users)

它不会抱怨或出错,我什至可以在 /tmp/cache 下看到一个非零大小的“foo”,但随后控制器调用了

Rails.cache.read('foo')

返回零。当我从 Rails 控制台进行写入和读取时,它按预期工作。通过导致此问题的控制器执行此操作是什么?

这曾经在 Rails 2 中工作过......我错过了什么?

【问题讨论】:

    标签: ruby-on-rails caching activerecord


    【解决方案1】:

    检查config.action_controller.perform_caching 是否设置为true

    引用Rails caching guide

    在开发和测试时默认禁用缓存,为生产启用缓存

    【讨论】:

    • 检查过 Vivien。现在我已经开始缓存 User 模型的 id 了。缓存 AR 对象会很好,而且根本不需要访问数据库……
    猜你喜欢
    • 2017-08-11
    • 2011-06-05
    • 2015-11-04
    • 2011-10-19
    • 1970-01-01
    • 2015-05-08
    • 2018-04-13
    • 2017-08-17
    • 1970-01-01
    相关资源
    最近更新 更多