Today I added page caching to my Ruby on Rails application, ActionShootingScores for IDPA matches. This should significantly speed up viewing of match results. I handle expiring the cached pages this way: When a match is being edited, it goes into an unpublished state. After the match director is happy with it, he or she publishes it. On both of these state transitions the pages associated with the match get expire_page() called for them. Also if a match is deleted it’s pages get expired.
Later, I’ll add this to the other match types.