我正在根据参数
将用户重定向到应用程序的子域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
答案 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"