memcache in prod vs dev

1 view
Skip to first unread message

badnaam

unread,
Sep 1, 2010, 1:26:54 PM9/1/10
to Ruby on Rails: Talk
I am using memcache for caching in my rails app and currently I have a
dev and a production environment.

I would like to run the dev environment without caching so that I can
debug more easily but I wanna enable the caching in production
obviously. I am using github and capistrano for deployment.

Without doing a check at every statement where I can potentially dig
into the cache, is there any way of handling this more gracefully or
globally?

if env == 'dev' @post = Post.all else //get @post from cache en

Marnen Laibow-Koser

unread,
Sep 2, 2010, 11:29:38 AM9/2/10
to rubyonra...@googlegroups.com

Rails turns caching off by default in the development environment, if I
remember correctly. If not, you can certainly turn it off yourself in
config/environments/development.rb .

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
mar...@marnen.org
--
Posted via http://www.ruby-forum.com/.

Tony Primerano

unread,
Sep 2, 2010, 12:16:46 PM9/2/10
to Ruby on Rails: Talk
Assuming you are using standard page/fragement/action caching you can
just set

config.action_controller.perform_caching = false

in your development environment file. If you are making direct calls
to Rails.cache you can use a cache store stub in development.

I just did this today for my test environment

Details in my post earlier today

http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/b8603c94ac08940a

badnaam

unread,
Sep 3, 2010, 7:28:17 PM9/3/10
to Ruby on Rails: Talk
I understand how to turn caching on or off. Well let me explain.

let's say if I am using memcache and I have a post listing page that
uses the following method. Now If I want to not use caching in
development I will have to write this method without the CACHE.fetch?
So basically, I am doing a if/else in every method do check if it's
dev or prod and then either get the collection/fragment from the CACHE
or not. This seems ugly, wondering if there is a better way.

def get_all_post
CACHE.fetch("all_posts") {Post.all}
end
> http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/...
Reply all
Reply to author
Forward
0 new messages