невизначений метод `transform_keys 'завантаження веб-сторінок Sidekiq


24

Після оновлення дорогоцінних каменів він не завантажує веб-сайт 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]

Повне повідомлення про помилку


1
Яку версію Ruby та Ruby on Rails ви використовуєте?
spickermann

@spickermann запитує, тому що Hash # transform_keys був доданий до ядра Ruby досить недавно, в v2.5.
Cary Swoveland

@spickermann ruby ​​2.6.0p0 (2018-12-25 версія 66547) [x86_64-linux]
rhugo

@rhugo Чи можете ви опублікувати повне повідомлення про помилку, включаючи трак стека та код, який викликає виняток (див. слід стека, щоб визначити, де помилка трапляється у вашій програмі).
spickermann

@spickermann Я додав зображення до журналу, це не дозволяє мені включати стільки коду в повідомлення
rhugo

Відповіді:


36

Здається, проблема з Rack 2.1.1. Працює нормально з 2.0.8.


6
Він був зафіксований у Rack 2.1.2, який був щойно випущений пару годин тому.
Майк А.

1
Я оновив до Rack 2.1.2, але Sidekiq відображає порожні сторінки. Зниження рівня до 2.0.8 примушує його знову працювати. Більше питань тут: github.com/rack/rack/isissue/1531
dolarsrg


8

Оновлення: 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'

В обох випадках слід видалити / замінити це правильним фіксованим випуском, як тільки це станеться. Слідкуйте за https://github.com/rack/rack/pull/1428


5

Для мене я вирішив цю проблему, додавши цей рядок до Gemfile

gem 'rack', '2.0.7'

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

Якщо ви використовуєте Capistrano, вам не потрібно запускати bundle installвручну, і він Gemfile.lockчасто не існує у вашому сховищі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.