Working on other peoples apps can be tough. In spite of all the “convention” that is supposed to come over configuration, people still do a hell of a lot of configuring. In the end it takes a while figure out what’s what in a new app. Different places to create the same effect, dozens of ways to write equivalent code. After scratching my head for a while over a page that had a bunch of links to various models that all resulted in 404’s I was getting a little frustrated. The production log was no help. After dumping the DB and copying it to my dev database I noticed the problem was gone when I ran the app on my local machine. WTF? Then it hit me: Its cached.
So the task was to clean a stale cache from the console. A little searching turned up these gleaming bits of awesomeness and I’m putting them up here so I never forget them. For a starter on caching you should definitely check out the Railsguide.
This will return the cache directory in case you need to “expire” it manually (defaults to the public directory):
Or clear a page from the cache with something like this:
ApplicationController.expire_page(:controller => “site”, :action => “index”)
or a fragment:
ActionController::Base.new.expire_fragment(:controller => “my”, :action => “index”)
I’ll be remembering that one!