为什么Rails flash消息会显示两次
为什么Rails flash消息会显示两次
您设置了一条Flash消息,它会显示出来。但是,下次您关注链接时会再次显示。原因如下:
您必须区分a render
和a,redirect_to
因为Flash消息仅在重定向后被删除。如果您希望在重定向后在下一个请求中看到消息,请使用flash[]
。如果要在当前请求中看到消息,请使用flash.now[]
。\
懒惰的解决方法
如果您无法决定使用哪个闪存哈希值,或者闪存是否由您控件之外的一段代码设置,您还可以更改显示闪存的布局,以便在显示时删除闪存消息
- flash.slice(:notice, :message, :error, :success, :warning, :failure).each do |level, value| - if value.present? %div{:class => "flash #{h level}"} = h value - flash[level] = nil # set to nil in case the flash was set without a following redirect