小编tom*_*ijn的帖子

Rails 3通知

使用Rails 3.0.3结合设计之类的宝石我没有得到任何flash消息.现在我提到设计,因为它控制用于验证我的cookie.

现在Rails应用程序有点特殊,因为它使用子域.他们所做的是告诉应用程序用户正在浏览哪家公司.例如:mycompany.theapp.com/projects/3/ < - 公司"mycompany"的项目3.
当用户登录时,他/她被定向到theapp.com/overview < - 非子域
每次通知都会显示,那么为什么不在子域页面上?

所以这是子域页面上使用的代码.与将其放在非子域页面上的完全相同.控制器中的代码:

def update
  redirect_to [@project], :notice => "Project #{@project.name} updated."
end
Run Code Online (Sandbox Code Playgroud)

layouts/application.html.erb

<% flash.each do |type, message| %>
  <%= content_tag :div, message, :class => "flash #{type}" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我还添加了以下内容,试图弄清楚发生了什么:

flash.to_yaml
# Result: --- !map:ActionDispatch::Flash::FlashHash {} 
Run Code Online (Sandbox Code Playgroud)

由于显然设计使用flash [:notice]我也尝试过(因为那是为了设计).

flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {} 
Run Code Online (Sandbox Code Playgroud)

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

它发生在带有"rails服务器"的Ubuntu 10.10上,乘客使用nginx,甚至在Mac机器上(但有人测试过).

有人在乎猜?

subdomain ruby-on-rails devise rails-flash

4
推荐指数
1
解决办法
1150
查看次数

标签 统计

devise ×1

rails-flash ×1

ruby-on-rails ×1

subdomain ×1