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.