Sidekiq 웹을로드하는 정의되지 않은 메소드 'transform_keys'


24

gem을 업데이트 한 후 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

루비 버전 : 루비 2.6.0p0 (2018-12-25 개정 66547) [x86_64-linux]

전체 오류 메시지


1
어떤 버전의 Ruby 및 Ruby on Rails를 사용하십니까?
— spickermann

@spickermann은 Hash # transform_keys 가 v2.5에서 상당히 최근에 Ruby 코어에 추가 되었기 때문에 묻습니다 .
— 캐리 스월 랜드

@spickermann ruby ​​2.6.0p0 (2018-12-25 개정 66547) [x86_64-linux]
— rhugo

@rhugo 스택 추적 및 예외를 발생시키는 코드를 포함한 전체 오류 메시지를 게시 할 수 있습니까 (응용 프로그램에서 오류가 발생하는 위치를 확인하려면 스택 추적 참조).
— spickermann

@spickermann 내가 로그로 이미지를 추가, 그것은 나를 메시지에 너무 많은 코드를 포함하지 않습니다
— rhugo

답변:


36

랙 2.1.1에 문제가있는 것 같습니다. 2.0.8에서도 작동합니다.


6
2 시간 전에 릴리스 된 Rack 2.1.2에서 수정되었습니다.
— Mike A.

1
Rack 2.1.2로 업데이트했지만 Sidekiq가 빈 페이지를 렌더링합니다. 2.0.8로 다운 그레이드하면 다시 작동합니다. 더 많은 문제는 여기에서 : github.com/rack/rack/issues/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종종 저장소에 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.