Action caching with dynamic cache names

2 views
Skip to first unread message

Lundie

unread,
Dec 4, 2008, 10:13:49 AM12/4/08
to Ruby on Rails: Talk
Hi,

I am attempting to cache a page that varies depending on the URL that
you go to. For example, http://mydomain.com/member_name goes to the
same action and controller as http://mydomain.com/other_member, but
the page is customized to the member.

I am currently accomplishing this with the following:

applications_controller.rb

caches_action :new, :cache_path => :new_cache_path.to_proc
....
private
def new_cache_path
params[:member_name]
end

This works fine, but I run into issues when I try and sweep the cache
because im am not sure how I can pass the member_name parameter to the
sweeper. The following is what I am using for a sweeper:

members_controller.rb

cache_sweeper :member_sweeper, :only => [ :update ]


class MemberSweeper < ActionController::Caching::Sweeper
observe Member

def after_save(product)
expire_cache(product)
end

def after_destroy(product)
expire_cache(product)
end

def expire_cache(product)
expire_action 'member_name'
end
end


The members name is being passed to the member controller via the
submitted form, I just need to know if it is possible to pass it to
the sweeper.

Thanks for your help!

Ryan



Reply all
Reply to author
Forward
0 new messages