欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

为什么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

返回列表