undefined метод `transform_keys 'загрузка веб-страницы Sidekiq - PullRequest
24 голосов
/ 13 января 2020

После обновления гемов он не загружает сайт sidekiq, выдавая следующую ошибку:

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

Были обновлены гемы:

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

ruby версия: ruby 2.6.0p0 (2018-12-25 редакция 66547) [x86_64-linux]

Полное сообщение об ошибке

Ответы [ 4 ]

36 голосов
/ 13 января 2020

Похоже, проблема с Rack 2.1.1. Работает нормально с 2.0.8.

21 голосов
/ 15 января 2020

это проблема стойки и исправлена ​​этим PR: https://github.com/rack/rack/pull/1428

8 голосов
/ 23 января 2020

Обновление: Rack 2.1.2 выпущен и устраняет эту ошибку

Теперь решение гарантирует, что вы используете 2.1.2 или выше.

bundle update rack

может помочь для вас, в зависимости от остальной части вашего Gemfile.


Старый ответ

Два варианта решения этой проблемы.

  • Установите предыдущий рабочий выпуск ( рекомендуемые). Это позволит установить последнюю версию в ветке 2.0.X:
gem 'rack', '~> 2.0.0'
  • Установить исправленную версию из git самого репозитория
gem 'rack', github: 'rack/rack', ref: 'f690bb71425aa31d7b9b3113829af773950d8ab5'

In в обоих случаях вы должны удалить / заменить это исправленным выпуском, как только это произойдет. Следите за https://github.com/rack/rack/pull/1428

5 голосов
/ 17 января 2020

Я решил эту проблему, добавив эту строку в Gemfile

gem 'rack', '2.0.7'

Если у вас есть Gemfile.lock в локальной сети, вы можете удалить ее и затем запустить bundle install.

Если вы используете Capistrano, вам не нужно запускать bundle install вручную, а Gemfile.lock часто не существует в вашем хранилище.

...