Problem with flash[:notice] appearing twice


In my save function in my (ajax!!!) controller, i’ve got a bit like

if …
flash[:notice] = ‘NOT SAVED: This month is locked’
render :partial => ‘edit’
save it…
redirect to ‘show’ action…

If i try to save an entry for a locked month, it correctly brings me
back to
my edit action with the ‘not saved’ message correctly showing. But if i
then go to another page, the ‘not saved’ message still shows! But then
if i refresh, it disappears.

It seems the flash notice sticks around one too many page views. Any


Bingo - sorted it myself!

Put this in the application controller:

before_filter :remove_flash_notice

def remove_flash_notice
#flash[:notice] = ‘’

Isn’t this a bit of an oversight, though? Or am i missing something?


Yes, you are missing the fact that you should use

flash[:something] = value

only if you intend to redirect_to another action. Otherwise you’re
better of using[:something] = value