2010-08-31 2 views
0

Nous avons récemment mis à jour Rails vers 2.3.8 (à partir de quelque chose de si ancien que vous ne voulez pas savoir)."Vous êtes redirigé" bug dans Rails 2.3.8 + mongrel

Tout allait bien et tout a bien fonctionné en développement, puis lorsque nous l'avons mis en place, nous avons découvert que les redirections cessaient soudainement de fonctionner. Au lieu d'être redirigé (par exemple lors de la connexion), nous avons juste une page blanche qui dit "Vous êtes redirigé".

Si vous cliquez sur le travail "redirigé" vous obtiendriez à la page que vous étiez après, mais il ne serait jamais réellement rediriger.

Répondre

4

Cela semble être un bogue dans bâtarde comme décrit ici: https://rails.lighthouseapp.com/projects/8994/tickets/4690

La solution est fournie sous forme de fichier que vous pouvez juste entrer directement dans config/initializers ici: http://gist.github.com/471663

qui n'a pas travaille pour nous au début. Il est venu avec un bug sur les exigences:

ArgumentError: Illformed requirement [#<Gem::Requirement:0x2ac6e72be9a8 @requirements=[["~>", #<Gem::Version "1.1.5">]], @version=nil>] 

Mais je retiré les exigences en ligne à partir du fichier mongrel.rb (après tout, je sais que je suis en cours d'exécution bâtarde v 1.1.5) afin de:

if Rails.version == '2.3.8' && Gem.available?('mongrel', Gem::Requirement.new('~>1.1.5')) && self.class.const_defined?(:Mongrel) 

il est devenu tout simplement:

if Rails.version == '2.3.8' 

Ce résolu le problème de redirection.

+0

[Cette initialiseur] (https://gist.github.com/826692) (basé sur celui ci-dessus) a fonctionné pour moi pour résoudre ce problème sur Rails 2.3.15. Correction –

1

J'ai aussi ajouté une ligne juste après le si:

require 'mongrel'

parce que sans elle, lors de l'exécution rake db: migrer, je suis une erreur constante non initialisée. Cela l'a réparé.

+0

: l'ai corrigé sur mon test env, mais ne fonctionne toujours pas en production sur EY. Je pense que c'est plus leur problème, alors. –

2

Si vous redirigez vers une URL, il peut s'agir simplement d'une erreur dans votre instruction de redirection. Je fixe une erreur similaire en changeant:

redirect_to "controller/controller_method" 

à:

redirect_to "/controller/controller_method" 
+1

+1 pour répondre à presque 2 ans question :) – Jeremy

Questions connexes