méthode non définie `transform_keys 'chargement de Sidekiq web


24

Après la mise à jour des gemmes, il ne charge pas le site web sidekiq donnant l'erreur suivante:

NoMethodError (undefined method `transform_keys' for <ActionDispatch::Request::Session:0x00005568df2a8710>):

Les gemmes qui ont été mises à jour étaient:

selenium-webdriver 3.142.7
rack-protection 2.0.8.1
mime-types 3.3.1
 mini_magick 4.10.1
image_processing 1.10.3
groupdate 4.3.0
friendly_id 5.3.0
faraday 0.17.3
http 4.3.0
public_suffix 4.0.3
rack 2.1.1
crass 1.0.6
i18n 1.7.1
minitest 5.14.0

version ruby: ruby ​​2.6.0p0 (2018-12-25 révision 66547) [x86_64-linux]

Message d'erreur complet


1
Quelle version de Ruby et Ruby on Rails utilisez-vous?
spickermann

@spickermann demande parce que Hash # transform_keys a été ajouté au noyau Ruby assez récemment, dans la v2.5.
Cary Swoveland

@spickermann ruby ​​2.6.0p0 (2018-12-25 révision 66547) [x86_64-linux]
rhugo

@rhugo Pouvez-vous s'il vous plaît publier le message d'erreur complet, y compris la trace de pile et le code qui déclenche l'exception (voir trace de pile pour identifier où l'erreur se produit dans votre application).
spickermann

@spickermann J'ai ajouté une image avec le journal, cela ne me permet pas d'inclure autant de code dans le message
rhugo

Réponses:


36

Cela semble être un problème avec Rack 2.1.1. Cela fonctionne bien avec 2.0.8.


6
Il a été corrigé dans le Rack 2.1.2, qui vient d'être publié il y a quelques heures.
Mike A.

1
J'ai mis à jour le Rack 2.1.2 mais Sidekiq affiche des pages blanches. La rétrogradation à 2.0.8 le fait fonctionner à nouveau. Plus de problèmes ici: github.com/rack/rack/issues/1531
dolarsrg


8

Mise à jour: Rack 2.1.2 a été publié et il résout cette erreur

Maintenant, la solution s'assure que vous utilisez 2.1.2 ou supérieur.

bundle update rack

pourrait faire l'affaire pour vous en fonction du reste de votre Gemfile.


Ancienne réponse

Deux options pour résoudre ce problème.

  • Installez une version de travail précédente (recommandée). Cela installera la dernière version sur la branche 2.0.X:
gem 'rack', '~> 2.0.0'
  • Installez la version fixe à partir du référentiel git lui-même
gem 'rack', github: 'rack/rack', ref: 'f690bb71425aa31d7b9b3113829af773950d8ab5'

Dans les deux cas, vous devez supprimer / remplacer cela par la version fixe appropriée une fois que cela se produit. Gardez une trace de https://github.com/rack/rack/pull/1428


5

Pour moi, j'ai résolu ce problème en ajoutant cette ligne à Gemfile

gem 'rack', '2.0.7'

Si vous en avez Gemfile.locken local, vous pouvez le supprimer puis l'exécuter bundle install.

Si vous utilisez Capistrano, vous n'avez pas besoin de l'exécuter bundle installmanuellement, et Gemfile.lockil n'existe souvent pas dans votre référentiel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.