未定义的方法`transform_keys'加载Sidekiq网站


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

ruby版本:ruby 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

Answers:




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存储库中通常不存在。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.