我在Rails应用程序中使用Flash通知,其代码如下:
flash[:notice] = "Sorry, we weren't able to log you in with those details."
render :action => :new
Flash消息将按预期的方式在“新”操作中呈现,但随后还会在用户访问的下一页(无论可能是什么)上显示该消息。它应该只显示一次,但是有一些东西使它停留在周围。
Answers:
有两种方法可以解决此问题:
一是用
flash.now[:notice]
当您的Flash必须在当前请求的末尾丢弃并且不打算在重定向后使用时。
第二个是打电话
flash.discard(:notice)
在请求结束时。
标准闪存消息旨在保留给“下一个”请求。例如,您在处理创建或编辑请求时生成了Flash,然后将用户重定向到显示屏幕。当浏览器向显示屏幕发出下一个请求时,将显示闪光灯。
如果您确实在显示屏幕上生成了闪光灯,请使用flash.now
。
或者您可以像这样调用动作
flash.now[:notice] = "Sorry, we weren't able to log you in with those details."
render 'new' #or render :new