On Fri, Oct 22, 2010 at 9:18 AM, Josh French <[email protected]> wrote: > So do you think it's possible to add the logic to a middleware object and > add the middleware object to the stack? > > Actually... wouldn't that work as long as it was inserted before > Rack::Cache? Can someone more familiar with the caching layer confirm/deny?
Yes. As long as it's injected before the cache, you're golden. > On Oct 21, 2010, at 10:38 PM, Stan Rawrysz wrote: > > So do you think it's possible to add the logic to a middleware object and > add the middleware object to the stack? > Put something like the following in the extension? > extension_config do |config| > config.middleware.use GeoIpRedirect > end > I'm pretty new to middleware, so I'm not certain that this will get called > every time... > Stan > > On Thu, Oct 21, 2010 at 4:25 PM, swartz <[email protected]> wrote: >> >> As far as I understand if there is a cached page already available the >> radian sitecontroller doesn't even get executed. The server spits out >> the generated page. >> >> If you wish to have code executed everytime for every page access, you >> pretty much have to disable caching. >> If it's only afew specific pages that require this, you want to >> declare your own page type and define the following: >> >> def cache? >> false >> end >> >> On Oct 21, 2:53 pm, Stan Rawrysz <[email protected]> wrote: >> > I've written an extension that needs to do some processing on every >> > call to a page in the cms. Basically, it checks for a cookie and >> > redirects the user if a certain value is present. I'm running into a >> > problem where that piece of code is not being called after the first >> > call to the app. I believe it's because of caching... >> > >> > When i set cache_timeout to small, it works: >> > SiteController.cache_timeout = 1.second >> > >> > The extension is a SiteController extension: >> > >> > def activate >> > Page.class_eval { >> > SiteController.send :include, >> > IpRedirect::SiteControllerExt >> > } >> > end >> > >> > The controller: >> > >> > module SiteControllerExt >> > >> > def self.included(base) >> > base.class_eval do >> > base.send(:include, InstanceMethods) >> > before_filter :lookup_preferred_language_and_redirect >> > end >> > >> > module InstanceMethods >> > def lookup_preferred_language_and_redirect >> > .... >> > end >> > >> > Is it possible that the before_filter is not called when caching is >> > turned on? Is there a way to make sure >> > that :lookup_preferred_language_and_redirect is called regardless of >> > caching? >> > >> > I'm on 0.8.2 for this one. >> > >> > Thanks in advance! >> > Stan > > -- Jim Gay Saturn Flyer LLC http://www.saturnflyer.com 571-403-0338
