未定義のメソッド「transform_keys」がSidekiq Webをロード


24

gemを更新した後、sidekiq Webサイトが読み込まれず、次のエラーが発生します。

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は、v2.5でHash#transform_keysがRubyコアに最近追加されたので、質問しています。
Cary Swoveland

@spickermann ruby​​ 2.6.0p0(2018-12-25リビジョン66547)[x86_64-linux]
rhugo

@rhugoスタックトレースと例外をトリガーするコードを含む完全なエラーメッセージを投稿してください(アプリケーションでエラーが発生した場所を特定するには、スタックトレースを参照してください)。
スピッカーマン

@spickermannログに画像を追加しましたが、メッセージにそれほど多くのコードを含めることができません
rhugo

回答:


36

ラック2.1.1の問題のようです。2.0.8では問題なく動作します。


6
数時間前にリリースされたRack 2.1.2で修正されました。
マイクA.

1
Rack 2.1.2にアップデートしましたが、Sidekiqが空白のページをレンダリングします。2.0.8にダウングレードすると、再び機能するようになります。その他の問題:github.com/rack/rack/issues/1531
dolarsrg


8

更新:ラック2.1.2がリリースされ、このエラーが解決されました

これで、ソリューションは2.1.2以降を使用していることを確認しています。

bundle update rack

Gemfileの残りの部分に応じて、あなたのためのトリックを行うかもしれません。


古い答え

これを解決するための2つのオプション。

  • 以前の作業リリースをインストールします(推奨)。これにより、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.