memcached - Why isn't caching activating in my Rails dev environment? -


i'm attempting setup caching in development using dalli , memcache.

i've installed memcached , can access rails console"

> rails.cache.write 'test', 'asdfasdf' cache write: test dalli::server#connect 127.0.0.1:11211 => 360287970189639680  > rails.cache.read 'test' cache read: test => "asdfasdf" 

i've installed memcachier , dalli gems:

gemfile.rb

gem 'dalli' gem 'memcachier' 

and i've updated development.rb instruct caching activate:

development.rb

config.action_controller.perform_caching = true config.cache_store = :dalli_store, '127.0.0.1'  

however still can't seem make fragment caching work...

however if take 1 of view files , wrap contents in cache block doesn't seem affect page rendering:

- cache @page   %h1 @page.title   %p @page.contents 

i don't believe caching

if check server logs there aren't fewer database calls. expect since cache key dependent on @page model, changes template not show in browser do. if alter contents , refresh browser updates.

what missing, why isn't caching?

edit - think perhaps explicit dependencies

in cache digests documentation there reference explicit dependencies , templates can't derived. think may problem, console showing messages such as:

18:39:10 web.1  | couldn't find template digesting: pages/magazine_header.html 18:39:10 web.1  | cache digest magazines/next_previous_nav.html: 5249e7d094aafe2365a097d8ca543dd1 18:39:10 web.1  | couldn't find template digesting: layout_partials/layout_partial.html 18:39:10 web.1  | cache digest 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) 

i'm not sure how resolve investigating...

rails 4 isn't smart in figuring out template dependencies using implicit template rendering. it's mentioned in documentation linked. you'll need use special comment format in views:

<%# template dependency: pages/magazine_header %> 

it can use explicit form of template rendering. rails able infer correct partials itself.

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

the news since rails 5.0.4 , 5.1.3, implicit template rendering got lot smarter. suspect using versions fix issue too.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -