Rails 重定向到带有通知消息的子域
Rails redirecting to a subdomain with a notice message
我正在根据参数将用户重定向到应用程序的子域
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 %>
用于显示即显消息。
但这里的问题是没有显示通知消息。
是否使用子域导致此问题,因为如果删除子域并且如果我重定向到同一子域中的 url,我可以看到正在显示的闪现消息。
respond_to do |format|
format.html { redirect_to home_url, notice: "Couldn't able to process your request, please try after some time" }
end
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"
我正在根据参数将用户重定向到应用程序的子域
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 %>
用于显示即显消息。
但这里的问题是没有显示通知消息。
是否使用子域导致此问题,因为如果删除子域并且如果我重定向到同一子域中的 url,我可以看到正在显示的闪现消息。
respond_to do |format|
format.html { redirect_to home_url, notice: "Couldn't able to process your request, please try after some time" }
end
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"