我正在更新 Rails 应用程序上的 Ruby 版本。我从版本
2.7.5
更新到版本3.0.6
。我修复了所有损坏的依赖项,并且使用 rails s
命令成功启动了我的项目。但由于某种原因我无法运行 rspec 测试。
在我的
config/application.rb
文件中,以下行抛出错误。
Bundler.require(*Rails.groups)
错误是这样的:
ArgumentError:
wrong number of arguments (given 4, expected 3)
# ./config/application.rb:16:in `<top (required)>'
# ./config/environment.rb:4:in `require_relative'
# ./config/environment.rb:4:in `<top (required)>'
# ./spec/rails_helper.rb:8:in `<top (required)>'
奇怪的是,只有当
:test
数组中存在 'test'
或 Rails.groups
时,才会重现此错误。
也就是说,例如,如果您给 Bundler.require
这样的数组作为输入 -> [:default]
那么就不会出现错误
我的 Rails 应用程序版本:
6.1.7.4
过了一段时间我找到了答案。问题出在水豚库中。由于某种原因,我使用的版本没有标记为 Ruby 3 不可用,更新到更新的版本就可以正常工作了。