Ruby on rails 闪存。在下一页之前不工作

Ruby on rails 闪存。在下一页之前不工作,ruby-on-rails,redirect,Ruby On Rails,Redirect,我写了一个重定向,所以它会检查页面是否为https://并且如果是,它会将页面定向到http:// 但是,我想使用一条从https://传递的flash消息,但它在重定向过程中消失,因此它永远不会向用户显示。所以,我尝试了flash[:注意]。保持,但这也不起作用。重定向发生时,没有显示任何内容,但在下一页上它最终显示了消息。这是我的密码: def turn_off_https if (request.ssl? && params[:controller] != 's

我写了一个重定向,所以它会检查页面是否为https://并且如果是,它会将页面定向到http://

但是,我想使用一条从https://传递的flash消息,但它在重定向过程中消失,因此它永远不会向用户显示。所以,我尝试了flash[:注意]。保持,但这也不起作用。重定向发生时,没有显示任何内容,但在下一页上它最终显示了消息。这是我的密码:

  def turn_off_https
    if (request.ssl? && params[:controller] != 'subscriptions')
      flash[:notice].keep
      redirect_to :subdomain => "www", :protocol => "http://"
    end
  end
基本上,我只有一个我想要https://的网站页面,但添加它之后,用户进入的任何其他页面都有https://即使我不想要。这就是为什么我在应用程序控制器中添加了这个before_过滤器,以确保切换回http。如何确保重定向时显示通知

我还尝试在该方法中将:notice添加到redirect_to,但这只是将消息作为参数放在URL中,并没有实际将其加载到页面上,如下所示:


会话是否因为域不同而全部丢失?是的,可能是。但是,当我要进行重定向时,我有一个flash通知…所以我不应该将它添加到重定向中吗?它仍然存储在会话中-如果会话被保留,它将不起作用。是否有更好的实现我正在尝试的操作?我需要从转到并维护通知您需要配置会话域以覆盖这两个域
flash.keep            # keeps the entire flash
flash.keep(:notice)   # keeps only the "notice" entry, the rest of the flash is discarded