flash.keep直到后续页面才能工作

时间:2012-07-25 20:17:15

标签: ruby-on-rails redirect

我写了一个重定向,因此检查页面是否为https://,如果是,则将其指向http://。

但是,我想使用从https://传递的flash消息,但它在重定向期间消失,因此它永远不会显示给用户。所以,我试过flash[:notice].keep,但这也不起作用。没有出现重定向,但是在下一页上它最终会显示消息。这是我的代码:

  def turn_off_https
    if (request.ssl? && params[:controller] != 'subscriptions')
      flash[:notice].keep
      redirect_to :subdomain => "www", :protocol => "http://"
    end
  end

基本上我只有我的网站的1页我想要https://但是在添加之后,用户去的任何其他页面都有https://即使我不想要那个。这就是为什么我将这个before_filter添加到应用程序控制器以确保切换回http。如何确保通知在重定向时显示?

我还尝试在该方法的redirect_to中添加“:notice”,但只是将消息作为参数放入URL中,并且实际上并没有将其加载到页面上

1 个答案:

答案 0 :(得分:0)

根据Rails API

flash.keep            # keeps the entire flash
flash.keep(:notice)   # keeps only the "notice" entry, the rest of the flash is discarded