Conditional action caching/memcache - not working with all actions (routes?)

I’ve been trying to track this down for a while now and have yet find
the solution…this problem appears only to occur in production
environment with multiple mongrels.

We’ve got several controllers using conditional action caching using
cache_fu plugin. Some actions work great, as I expect, others seem to
work intermittently at mongrel startup, but quit working after a
while.

So for example, the index action in a help controller works fine (this
is picked up by a default route):

class HelpController < ApplicationController
caches_action :index => {:ttl => 1.hour, :if => :cacheable?}

def index
end
end

However, some actions, including the main site index action seems to
fail miserably.

Uses this route:

Default welcome Route

map.home ‘’, :controller => “home”

Note - c.flash_message below is to pick up redirects to index page

with flash messages like one one logout, which will have a flash
message (“You are now logged out,” etc.)

class HomeController < ApplicationController
before_filter :login_required, :except =>
[:index, :welcome, :public_profile, :test]
before_filter :find_account_or_redirect, :except =>
[:index, :welcome, :public_profile, :test]
caches_action :index => { :ttl => 30.minutes, :if
=> :cacheable? } , :cache_path => Proc.new {|c| c.flash_message }

def index
respond_to do |format|
format.html do
unless logged_in?
@favorite = FeatureItem.recent_favorites(1, ‘entertainment’)
[0]
@favorites = FeatureItem.recent_favorites(10,
‘entertainment’)
render :action => ‘welcome’ and return false
end
.
.
.
end
end
end
.
.
.
end

cacheable? method is in application controller (logged_in? is in
restful_authentication library)

def cacheable?
logged_in? ? false : true
end

About four of the actions are working perfectly, the other four or so
fail. Any insight would be highly appreciated…

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs