Hassles with flash[:notice] vs flash.now[:notice]

hey all

I'm using rails 2.2.2 in a particular app, and upgrading isn't an option right now (in case this is a version-specific problem).

When you do flash[:notice] = "blah", that message persists over the next redirect, ie into the next action. When you do flash.now[:notice] = "blah", it doesn't persist into the next action.

However, sometimes in the code you might not exactly know what you want to do at the end of the action, ie sometimes you might redirect and sometimes you might re-render a template. If you do flash[:notice] = "blah" and then do a *render*, then click from that page to somewhere else completely, the flash message is still hanging around, completely out of context.

it's possible to deal with this by making sure that it's always a flash.now when you're going to render, and always a straight flash when you're going to redirect. But this seems clumsy and error prone, and leads to messier controller code.

What would seem like an ideal solution to me is to look up the hooks that action loading has into the FlashHash, and whatever it does, make the render action do that as well. So, the flash gets displayed once, then wiped, whether you render or redirect.

Before i go off on a quest to do this, does anyone have any sage advice? Is this plan doomed to failure?