Techioz Blog

Ruby をバージョン 2.7.5 からバージョン 3.0.6 にアップグレードする際のバンドラー エラーを修正するにはどうすればよいですか?

概要

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)>'

奇妙なのは、このエラーが Rails.groups 配列に :test または ‘test’ がある場合にのみ再現されることです。 つまり、たとえば、Bundler.require に input -> [:default] のような配列を指定した場合、エラーは発生しません。

私の Rails アプリのバージョン: 6.1.7.4

解決策

しばらくして、答えが見つかりました。問題はカピバラの図書館にありました。何らかの理由で、私が使用していたバージョンは Ruby 3 では利用できないとマークされておらず、より新しいバージョンに更新すると正常に機能しました。