過去に作成していた Rails のアプリのテストを行うとしたらエラーが出てきてしまったので、その原因と対策になります。
エラー状況
$ rails test
PG::Coder.new(hash) is deprecated. Please use keyword arguments instead! Called from /home/ec2-user/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/postgresql_adapter.rb:980:in `new'
Run options: --seed 31581
# Running:
Finished in 0.001730s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
- Ruby 3.1.3p185
- Rails 7.0.4.3
原因
Rails 7.0.4.3 で Gem pg のメソッド呼び出しの引数にハッシュを使っていたが、最新の pg では名前付きパラメータを使わないと警告を出すようになった。
解決策
Rails をバージョンアップ (7.0.4.3 → 7.0.8.4)。
$ bundle update rails
コメント