将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
layouts / 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 [:notice]我也尝试过(因为那样适用于设计)。
flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {}
现在,通知是否会通过cookie或会话数据发送,而这些数据未能很好地传输到子域?因为项目的编辑形式在mycompany.theapp.com/projects/3/edit/
上
它把我送到了
mycompany.theapp.com/projects/3/(不另行通知)
它发生在带有“rails服务器”的Ubuntu 10.10上,乘客使用nginx,甚至在Mac机器上(但其他人测试过它)。
有人在意猜测吗?
答案 0 :(得分:6)
显然配置确实没有问题。我们将它部署在服务器上,实时快速,生产模式,并且它起作用,令我们惊讶。这些通知显示在所有域中 这是localhost域的东西,我使用的是lvh.me,Rails不太合适。
提示是在(最近)对railscast的评论中发表的:
http://railscasts.com/episodes/221-subdomains-in-rails-3?view=comments#comment_146276 有一件重要的事情需要知道 你想分享之间的会议 localhost上的子域名。使用:域名 =&GT; “.lvh.me”并不总是有效(在我的情况下它没有),所以你必须这样做 将您的环境配置为 描述于 blog.plataformatec.com.br/2009/12/subdomains-and-sessions-to-the-rescue /
@David Sulc,用户已登录。