使用Rails 3.0.3与Devise这样的宝石结合使用,我不会收到任何闪光消息。现在我提到设计,因为它控制了用来验证我的cookie。

现在,Rails应用程序有点特别 子域. 。他们要做的是告诉应用程序用户正在浏览哪个公司。一个示例:mycompany.theapp.com/projects/3/ < - 公司“ mycompany”的项目3。
当用户登录He/她时,他/她被定向到theapp.com/overview < - 非子域
那里的每个通知都会显示,所以为什么不在子域页面上呢?

因此,这是子域页面上使用的代码。与将其放在非域域页面上的完全相同。控制器中的代码:

def update
  redirect_to [@project], :notice => "Project #{@project.name} updated."
end

布局/application.html.erb

<% flash.each do |type, message| %>
  <%= content_tag :div, message, :class => "flash #{type}" %>
<% end %>

我还添加了以下内容,试图找出正在发生的事情:

flash.to_yaml
# Result: --- !map:ActionDispatch::Flash::FlashHash {} 

由于显然设计了使用flash [:注意],所以我也尝试过(因为那是为了设计)。

flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {} 

现在,通知是否会通过cookie或会话数据发送,这些数据不能很好地传输到子域?因为该项目的编辑形式在mycompany.theapp.com/projects/3/edit/上
它将我送到mycompany.theapp.com/projects/3/(无通知)

它在Ubuntu 10.10上使用“ Rails Server”,使用NGINX甚至Mac机器上的乘客(但其他人都对此进行了测试)。

有人在乎猜测吗?

有帮助吗?

解决方案

显然,配置并没有什么问题。我们将其部署在服务器上的真正快速生产模式上,并且它奏效了,这让我们感到惊讶。这些通知在所有域中都出现。
这是Local -Host域的东西,我正在使用lvh.me,而轨道并没有完全。

提示是在(最近的)关于铁轨的评论:

http://railscasts.com/episodes/221-subdomains-in-rails-3?view=comments#comment_146276 是否要在Localhost上的子域之间分享会议,这是一件重要的事情。使用:domain =>“ .lvh.me”并不总是有效(在我的情况下是不起作用),因此您必须按照所述配置环境 blog.plataformatec.com.br/2009/12/subdomains-and-sessions-to-the-rescue/

@david Sulc,用户已登录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top