我正在使用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,然后将成功消息放入视图中?我知道这将是一种旧时尚,但还有更好的方式吗?
感谢您的帮助!