エラーメッセージ PG::Coder.new(hash) is deprecated.

Rails

過去に作成していた 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

コメント

タイトルとURLをコピーしました