【发布时间】:2011-04-06 05:52:00
【问题描述】:
我们最近将 Rails 升级到 2.3.8(来自您不想知道的古老版本)。
一切都很好,一切都在开发中运行良好,然后当我们将它放在舞台上时,我们发现重定向突然停止工作。
我们没有被重定向(比如在登录期间),而是得到一个空白页面,上面写着“您正在被重定向”。
如果您单击“重定向”的作品,您会到达您所追求的页面,但它永远不会真正重定向。
【问题讨论】:
标签: ruby-on-rails mongrel
我们最近将 Rails 升级到 2.3.8(来自您不想知道的古老版本)。
一切都很好,一切都在开发中运行良好,然后当我们将它放在舞台上时,我们发现重定向突然停止工作。
我们没有被重定向(比如在登录期间),而是得到一个空白页面,上面写着“您正在被重定向”。
如果您单击“重定向”的作品,您会到达您所追求的页面,但它永远不会真正重定向。
【问题讨论】:
标签: ruby-on-rails mongrel
这似乎是 mongrel 中的一个错误,如下所述: https://rails.lighthouseapp.com/projects/8994/tickets/4690
解决方案以文件的形式提供,您可以在此处直接放入 config/initializers: http://gist.github.com/471663
一开始对我们不起作用。它提出了一个关于需求的错误:
ArgumentError: Illformed requirement [#<Gem::Requirement:0x2ac6e72be9a8 @requirements=[["~>", #<Gem::Version "1.1.5">]], @version=nil>]
但我刚刚从 mongrel.rb 文件中删除了需求行(毕竟,我知道我正在运行 mongrel v 1.1.5)所以来自:
if Rails.version == '2.3.8' && Gem.available?('mongrel', Gem::Requirement.new('~>1.1.5')) && self.class.const_defined?(:Mongrel)
它变得简单:
if Rails.version == '2.3.8'
这解决了重定向问题。
【讨论】:
如果您要重定向到一个 URL,这可能只是您的重定向语句中的错误。我通过更改修复了类似的错误:
redirect_to "controller/controller_method"
到:
redirect_to "/controller/controller_method"
【讨论】:
我还在 if 后面加了一行:
require 'mongrel'
因为没有它,在运行 rake db:migrate 时,我得到一个未初始化的常量错误。这解决了它。
【讨论】: