ruby-on-rails - 使用 ruby​​ 2.6.5 运行 rspec 时出现whitelist_classes 错误

标签 ruby-on-rails ruby ruby-2.6

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

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.

application.rb 的第 7 行是

Bundler.require(*Rails.groups)

我怀疑我需要升级一颗或多颗 gem 。我该如何解决这个问题?

最佳答案

我的猜测是在某个地方调用了 Psych.safe_load 。其界面在 2.5.7 之间变化和 2.6.5 。 2.5.7 将 whitelist_classeswhitelist_symbols 作为关键字参数,但 2.6.5 已将它们更改为 permissed_classespermissed_symbols界面。

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

关于ruby-on-rails - 使用 ruby​​ 2.6.5 运行 rspec 时出现whitelist_classes 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524017/

相关文章:

ruby-on-rails - 设计:用户模型中的 authentication_token 列为空

ruby-on-rails - rails : Trying to render image of users with same attribute

ruby-on-rails - 纸迹 : records with nil whodunnit values and object_changes in logs

ruby-on-rails - 在另一个 Controller 中渲染一个 Action

ruby-on-rails - Rails - 如何将变量插入正则表达式 (Regex),例如 assert_match

ruby-on-rails - 为Rails模型创建Elasticsearch索引时如何修复 “Illegal Argument Exception”?

ruby-on-rails - 实例变量假设 : UsersController assumes too much for instance variable '@user'

ruby-on-rails - 错误 : Error installing racc: ERROR: Failed to build gem native extension

javascript - 显示提交按钮,直到错误被删除