metodo indefinito `transform_keys 'caricamento web Sidekiq


24

Dopo aver aggiornato le gemme, non carica il sito web sidekiq dando il seguente errore:

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

Le gemme che sono state aggiornate erano:

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

versione ruby: ruby ​​2.6.0p0 (25-12-2015 revisione 66547) [x86_64-linux]

Messaggio di errore completo


1
Quale versione di Ruby e Ruby on Rails usi?
spickermann,

@spickermann chiede perché Hash # transform_keys è stato aggiunto al core Ruby abbastanza recentemente, nella v2.5.
Cary Swoveland,

@spickermann ruby ​​2.6.0p0 (25-12-2015 revisione 66547) [x86_64-linux]
rhugo

@rhugo Puoi inviare il messaggio di errore completo, inclusa la traccia dello stack e il codice che attiva l'eccezione (vedi traccia dello stack per identificare dove si verifica l'errore nella tua applicazione).
spickermann

@spickermann Ho aggiunto un'immagine con il registro, non mi permette di includere così tanto codice nel messaggio
rhugo

Risposte:


36

Sembra essere un problema con Rack 2.1.1. Funziona bene con 2.0.8.


6
È stato risolto nel Rack 2.1.2, che è stato appena rilasciato un paio d'ore fa.
Mike A.

1
Ho aggiornato a Rack 2.1.2 ma Sidekiq esegue il rendering di pagine vuote. Il downgrade a 2.0.8 lo rende nuovamente funzionante. Altri problemi qui: github.com/rack/rack/issues/1531
dolarsrg


8

Aggiornamento: Rack 2.1.2 è stato rilasciato e risolve questo errore

Ora la soluzione è assicurarsi di utilizzare la versione 2.1.2 o successiva.

bundle update rack

potrebbe fare il trucco per te a seconda del resto del tuo Gemfile.


Vecchia risposta

Due opzioni per risolvere questo.

  • Installa una versione di lavoro precedente (consigliata). Ciò installerà l'ultima versione sul ramo 2.0.X:
gem 'rack', '~> 2.0.0'
  • Installa la versione fissa dal repository git stesso
gem 'rack', github: 'rack/rack', ref: 'f690bb71425aa31d7b9b3113829af773950d8ab5'

In entrambi i casi, è necessario rimuovere / sostituire questo con il rilascio fisso corretto una volta che ciò accade. Tieni traccia di https://github.com/rack/rack/pull/1428


5

Per me, ho risolto questo problema aggiungendo questa riga a Gemfile

gem 'rack', '2.0.7'

Se hai Gemfile.lockin locale, puoi eliminarlo ed eseguirlo bundle install.

Se si utilizza Capistrano, non è necessario eseguirlo bundle installmanualmente e Gemfile.lockspesso non esiste nel proprio repository.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.