spariam
2008-May-14 01:08 UTC
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... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---