我们最近将Rails升级到2.3.8(从你不想知道的那么古老的东西)。
一切都很顺利,一切都在开发中运行得很好,然后当我们把它放到舞台上时,我们发现重定向突然停止了。
我们只是得到一个空白页面,上面写着“你正在被重定向”,而不是被重定向(比如在登录时)。
如果您点击“重定向”的作品,您将进入您所追求的页面,但它实际上永远不会重定向。
答案 0 :(得分:4)
这似乎是mongrel中的一个错误,如下所述: https://rails.lighthouseapp.com/projects/8994/tickets/4690
解决方案作为文件提供,您可以直接进入配置/初始化器: 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'
这解决了重定向问题。
答案 1 :(得分:2)
如果您要重定向到URL,则可能只是重定向语句中的错误。我修改了类似的错误:
redirect_to "controller/controller_method"
为:
redirect_to "/controller/controller_method"
答案 2 :(得分:1)
我还在if:
之后添加了一行 require 'mongrel'
因为没有它,在运行rake db:migrate时,我得到了一个未初始化的常量错误。这解决了它。