Rails通过通知消息重定向到子域

时间:2016-09-13 12:29:53

标签: html ruby-on-rails subdomain

我正在根据参数

将用户重定向到应用程序的子域
respond_to do |format|
      format.html {  redirect_to home_url(subdomain: params[:company]), notice: "Couldn't able to process your request, please try after some time" }
end

带有通知消息,我重定向用户的html页面看起来像

<% flash.each do |name, msg| %>
    <%= content_tag :div, msg, class: "alerts alerts-info bodyLeftPadd" %>
<% end %>

用于显示Flash消息。

但问题是这里没有显示通知信息。

是否使用子域导致此问题,因为如果删除子域并且如果我重定向到同一子域内的url,我可以看到正在显示的Flash消息。

 respond_to do |format|
          format.html {  redirect_to home_url, notice: "Couldn't able to process your request, please try after some time" }
 end

1 个答案:

答案 0 :(得分:3)

Flash消息存储在会话中,该会话与cookie相关联。 (如果您使用的是cookie_store,则所有会话数据都会保留在Cookie中,或者如果您使用的是active_record_session,则会有一个与数据库中的数据相关联的会话Cookie。

问题在于,除非您已将其配置为,否则Cookie不会跨子域跟踪您。见Share session (cookies) between subdomains in Rails?

听起来关键部分是在您配置会话存储的行中包含domain: '.yourdomain.com'。来自Action Controller Overview: Sessions

Rails.application.config.session_store :cookie_store, key: '_your_app_session', domain: ".example.com"