読者です 読者をやめる 読者になる 読者になる

"Array values in the parameter are deprecated" エラー

問題と原因

Railsのサーバーやコンソール実行時次のような警告が出る場合:

$ rails server
Array values in the parameter are deprecated. Please use a String or nil.
An Array was passed in from bin/rails:3:in `load'
.
.
.

この場合原因はbin/springの11行目にある:

Gem.paths = { "GEM_PATH" => [Bundler.bundle_path.to_s, *Gem.path].uniq }

解決策

bin/springのこの11行目を次のように修正するか:

Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(File::PATH_SEPARATOR) }

springを次のコマンドで最新のバージョンにアップデートすることで、この警告は解消される:

$ bundle update spring && bundle exec spring binstub --remove --all && bundle exec spring binstub --all