1

当我使用应用程序升级ruby 2.5.7到时,所有 rspec 测试都失败了。一个示例错误是ruby 2.6.5rails 6.0.2

An error occurred while loading ./spec/models/account_spec.rb.
Failure/Error: require File.expand_path('../../config/environment', __FILE__)

ArgumentError:
  unknown keywords: whitelist_classes, whitelist_symbols
# ./config/application.rb:7:in `<top (required)>'
# ./config/environment.rb:2:in `require_relative'
# ./config/environment.rb:2:in `<top (required)>'
# ./spec/rails_helper.rb:2:in `<top (required)>'
# ./spec/models/account_spec.rb:1:in `<top (required)>'
No examples found.

第 7 行application.rb

Bundler.require(*Rails.groups)

我怀疑我需要升级一个或多个宝石。我该如何解决?

4

1 回答 1

1

我的猜测是Psych.safe_load某个地方有电话。它的界面在2.5.72.6.5之间发生了变化。2.5.7 将whitelist_classesandwhitelist_symbols作为关键字参数,但 2.6.5 将它们更改为permitted_classespermitted_symbols破坏了接口。

您可能需要升级Bundler或其他使用Psych. 您可以尝试在您的 gem 资源中搜索whitelist_classes. 如果您使用 RVM,那将是$HOME/.rvm/gems/ruby-2.6.5/gems/.

于 2019-12-29T23:35:48.103 回答