Problem with flash[:notice] appearing twice


#1

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

if …
flash[:notice] = ‘NOT SAVED: This month is locked’
render :partial => ‘edit’
else
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
Ideas?


#2

Bingo - sorted it myself!

Put this in the application controller:

before_filter :remove_flash_notice

private
def remove_flash_notice
#flash[:notice] = ‘’
true
end

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


#3

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

flash.now[:something] = value


Kent

http://www.datanoise.com