Rails 4缓存:如何禁用特定控制器操作或视图的默认缓存?

时间:2017-08-07 12:33:10

标签: ruby-on-rails ruby-on-rails-4 caching fragment-caching

我们在生产中运行Rails 4.2应用程序,具有以下配置(与缓存相关)。到目前为止我们还没有实现任何缓存技术(默认设置)。

config.action_controller.perform_caching = true

# Use a different cache store in production.
# config.cache_store = :mem_cache_store

我遇到特定视图的问题,因此没有显示更新的数据。

有没有办法可以禁用特定视图的片段缓存而不是整个应用程序?

1 个答案:

答案 0 :(得分:1)

TLDR:虽然缓存可能会导致问题,但在尝试修复之前,确实要验证您是否正在使用它!

禁用单个视图缓存的最简单方法也是最明显的(但可能很容易错过):

  

从视图中删除cache model do块。

默认情况下,Rails不会为您执行任何缓存,因此这将完全处理它。如果您未通过视图中的某个区块调用cache,则不使用缓存

E.g:

缓存:

# app/views/something_important/show.html.haml
= cache something_important do
  = render_something_expensive

未缓存:

# app/views/something_important/show.html.haml
= render_something_expensive