Rails 3通知

时间:2010-12-15 17:53:02

标签: ruby-on-rails devise subdomain 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

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机器上(但其他人测试过它)。

有人在意猜测吗?

1 个答案:

答案 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,用户已登录。