Conditional page caching

I want to be able to cache a page only when a user is not logged in,

I’ve implemented this technique

http://www.ethelred.org/articles/2006/10/22/conditional-use-of-page-cache-in-rails

to only send a request to rails when a user is logged in and display a
cached page when the user is not logged in. The problem is that when a
logged in user views a page that is to be cached rails then caches the
page with the content that is displayed to a logged in user, this will
then be displayed when a user who is not logged in views the page. So
what I would like to be able to do is to only page cache a page when a
user is not logged in.

Does anyone have any ideas about how I could do this?

Cheers

Teesea

hi teesea,

i just wanted to know whether you are getting this problem only when
cache pages.
I mean if you remove your cache logic will everything works fine?.

i guess may be you will be doing a authorization check before serving
any pages to a user(if not is it ok??)
and when will this cached pages expire.?

On 8/14/07, teesea [email protected] wrote:

page with the content that is displayed to a logged in user, this will
then be displayed when a user who is not logged in views the page. So
what I would like to be able to do is to only page cache a page when a
user is not logged in.

Does anyone have any ideas about how I could do this?

You should use action caching for this. It lets you run any
authorization before filters before checking for the cache. It’s not
as fast as page caching, but authenticated pages need to hit rails to
run the authorization code.

There are other solutions like using nginx SSI includes:
http://theexciter.com/articles/dynamic-page-caching-with-nginx-ssi


Rick O.
http://lighthouseapp.com
http://weblog.techno-weenie.net
http://mephistoblog.com

Thanks for the responses

I’ll have a look at action caching and see how that works out