tom*_*ijn 4 subdomain ruby-on-rails devise rails-flash
使用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机器上(但有人测试过).
有人在乎猜?
显然,配置并没有什么问题.我们将它部署在服务器上,实时快速,生产模式,并且它起作用,令我们惊讶.这些通知显示在所有域中.
这是localhost域的东西,我使用的是lvh.me,Rails并不是很好.
该提示是在(最近)对railscast的评论中:
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-中的描述配置你的环境.会议对在救援/
@David Sulc,用户已登录.
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |