Rails flash无法在代理页面上运行

时间:2017-05-18 20:51:20

标签: ruby-on-rails ruby proxy shopify flash-message

我正在使用ruby-on-rails开发Shopify应用程序,并且我使用Shopify应用程序代理使这两个平台协同工作。因此,基本的想法是,当我访问https://my-project.myshopify.com/a/portal时,它会使用代理加载页面https://my-project.c9users.io/a/portal

现在的问题是rails flash无法正常工作,我认为这是因为代理。以下是我使用的代码:

控制器:

 if @article.save
    flash[:success] = "Article successfully saved!"
    redirect_to @article

查看:

<% flash.each do |key, value| %>
    <div class="<%= flash_class(key) %>">
        <%= value %>
    </div>
<% end %>

application_helper.rb:

def flash_class(level)
    case level
        when 'notice' then "alert alert-info"
        when 'success' then "alert alert-success"
        when 'error' then "alert alert-danger"
        when 'alert' then "alert alert-warning"
    end
end

当我直接访问https://my-project.c9users.io/a/portal但通过https://my-project.myshopify.com/a/portal提交相同的表单时,Flash消息正常工作,最终加载https://my-project.c9users.io/a/portal似乎不起作用。

所以我猜在代理请求期间闪存会丢失。

我已多次搜索谷歌寻求解决方案,但无法找到解决方案。是否有一种解决此问题的方法,或者我应该在重定向时将参数传递给url,然后将成功消息放入视图中?我知道这将是一种旧时尚,但还有更好的方式吗?

感谢您的帮助!

0 个答案:

没有答案