The Devise authentication framework uses flash notices everywhere. This makes it easy to integrate with apps but it leads to poor user experience sometimes.
I am wonde
A better way to hide empty flash messages: if your message is in a div with class "notice" or "error" CSS3 lets you have a style like this:
.notice:empty {
display: none;
}
Which is nice because you can then always display the flash div and it'll only show up when there's something there. I use this to update flash messages in responses from ajax calls which otherwise wouldn't update flash messages because there's no page re-load involved. It gives a consistent look to messages that come as a result of ajax calls.