Ruby on rails 为什么不是';我的Rails开发环境中是否有缓存激活?

Ruby on rails 为什么不是';我的Rails开发环境中是否有缓存激活?,ruby-on-rails,memcached,Ruby On Rails,Memcached,我正在尝试使用Dalli和memcache在开发中设置缓存 我已经安装了memcached,可以从Rails控制台访问它” 我已经安装了memcachier和dalli gems: gemfile.rb gem 'dalli' gem 'memcachier' config.action_controller.perform_caching = true config.cache_store = :dalli_store, '127.0.0.1' 我更新了development.rb以指示

我正在尝试使用Dalli和memcache在开发中设置缓存

我已经安装了memcached,可以从Rails控制台访问它”

我已经安装了memcachier和dalli gems:

gemfile.rb

gem 'dalli'
gem 'memcachier'
config.action_controller.perform_caching = true
config.cache_store = :dalli_store, '127.0.0.1' 
我更新了development.rb以指示缓存激活:

development.rb

gem 'dalli'
gem 'memcachier'
config.action_controller.perform_caching = true
config.cache_store = :dalli_store, '127.0.0.1' 
然而,我似乎仍然无法使片段缓存工作。。。 但是,如果我使用其中一个视图文件并将内容包装到缓存块中,则似乎不会影响页面呈现:

- cache @page do
  %h1 @page.title
  %p @page.contents
我不相信这是真的 如果我检查服务器日志,则数据库调用不会减少。我还希望,由于缓存键仅依赖于
@page
模型,因此对模板的任何更改都不会显示在浏览器中,但会显示在浏览器中。如果我更改内容并刷新浏览器,它会立即更新

我错过了什么,为什么这不是缓存

编辑-我认为这可能与显式依赖有关 在中,存在对无法派生的显式依赖项和模板的引用。我认为这可能是我的问题,控制台显示的消息如下:

18:39:10 web.1  | Couldn't find template for digesting: pages/magazine_header.html
18:39:10 web.1  | Cache digest for magazines/next_previous_nav.html: 5249e7d094aafe2365a097d8ca543dd1
18:39:10 web.1  | Couldn't find template for digesting: layout_partials/layout_partial.html
18:39:10 web.1  | Cache digest for pages/show.html: 314c806fcbb207d41137bc46f0856db0
18:39:10 web.1  | Cache read: views/pages/199-20140614104931344003000/314c806fcbb207d41137bc46f0856db0
18:39:10 web.1  | Read fragment views/pages/199-20140614104931344003000/314c806fcbb207d41137bc46f0856db0 (1.2ms)
18:39:10 web.1  |   Rendered pages/show.html.haml within layouts/magazine (8.4ms)

我不知道如何立即解决这个问题,但将进行调查…

Rails 4在使用隐式模板呈现来确定模板依赖关系方面不太聪明。您链接的文档中提到了这一点。您需要在视图中使用特殊的注释格式:

<%# Template Dependency: pages/magazine_header %>

它还可以帮助使用模板呈现的显式形式。Rails很可能自己就能推断出正确的部分

# change this:
<%= render 'pages/magazine_header' %>

# into this:
<%= render partial: 'pages/magazine_header' %>
#更改此选项:
#为此:

好消息是,自从Rails 5.0.4和5.1.3以来,我怀疑使用这些版本也会解决您的问题。

在您的日志中是否看到诸如“读取片段视图/…”、“缓存写入:视图/…”、“写入片段视图/…”、“缓存读取:视图/…”之类的语句。。。“?啊哈-是的。除了这条消息……`找不到摘要模板:pages/magazine_header.html web.1 |缓存杂志摘要/next_previous_nav.html:5249e7d094a7d8ca543dd1 web.1 |找不到摘要模板:Layou partials/Layou partial.html web.1 |缓存页面摘要/show.html:314C806FCBB207D4137BC46F0856DB0 web.1 |缓存读取:视图/页面/199-20140614104931344003000/314c806fcbb206f0856db0 web.1 |读取片段视图/页面/199-20140614104931344003000/314c806f46f0856db0(1.1ms)`-关闭到谷歌。。。