Forum: Ruby on Rails Problem with flash[:notice] appearing twice

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
chris hulbert (Guest)
on 2006-02-21 01:44
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?
chris hulbert (Guest)
on 2006-02-21 01:59
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?
Kent S. (Guest)
on 2006-02-21 05:49
(Received via mailing list)
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
This topic is locked and can not be replied to.