gpt4 book ai didi

ruby-on-rails - Rails 3 通知

转载 作者:行者123 更新时间:2023-12-04 06:12:21 26 4
gpt4 key购买 nike

将 Rails 3.0.3 与像 devise 这样的 gem 结合使用,我没有收到任何 Flash 消息。
现在我提到设计,因为它控制用于对我进行身份验证的 cookie。

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

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

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 {}

由于显然 devise 使用 flash[:notice] 我也尝试过(因为它适用于 devise)。
flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {}

现在通知是否通过 cookie 或 session 数据发送,这些数据没有很好地传输到子域?因为项目的编辑表单在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 There's one important thing to know if you want to share sessions between subdomains on localhost. Using :domain => ".lvh.me" not always works (in my case it didn't), so you have to configure your environment as described in blog.plataformatec.com.br/2009/12/subdomains-and-sessions-to-the-rescue/



@David Sulc,用户已登录。

关于ruby-on-rails - Rails 3 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4453197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com