ruby-on-rails – Rails缓存ActiveRecord结果

我当前的主页显示所有可用类别以及每个类别的所有帖子数量.这当然是在网站上有性能影响,我只是想知道这是否可以缓存?

我不介意缓存是否有点过时,如果每次刷新时帖子的数量都不是100%准确,但我希望它每30分钟左右只进行一次查询.

最佳答案 在Rails中,您可以缓存几乎所有内容.

您可以缓存部分或查询.你也可以手动过期.

例如

cache('categorylist') do
     render partial: 'such'
end

在post.rb模型中,在每次创建post之后,重置它并强制它在下次运行时进行评估

after_create {
    Rails.cache.delete('categorylist')
}

这样,只有在创建新帖子时才会评估(并写入缓存).所有其他时间,它将从缓存中获取.

点赞