rspec実行時に "NameError:uninitialized constant ActiveSupport::ParameterFilter"
環境
ruby 2.5.1
rails 5.2.4
背景
- docker環境を構築
- CircleCIを導入
- ローカル環境で CircleCI による rspec 実行がうまく作動するかテスト
- falseが多く、タイムアウトになったりする
- 問題の切り分けをするため、CircleCiではなく、普通にrspecコマンドを実行してみる
- 一週間前はなかったタイトルのエラーが発生
$ bundle exec rubocop --require rubocop-airbnb
...
...
...
Failure/Error: get article_url article
NameError:
uninitialized constant ActiveSupport::ParameterFilter
# ./spec/requests/articles_spec.rb:33:in `block (4 levels) in <top (required)>'
結論
$ bundle exec rubocop --require rubocop-airbnb
...
...
...
Failure/Error: get article_url article
NameError:
uninitialized constant ActiveSupport::ParameterFilter
# ./spec/requests/articles_spec.rb:33:in `block (4 levels) in <top (required)>'
gem の"impressionist" のバージョンを変更したら、直りました。
# 変更前
gem 'impressionist'
# 変更後
gem 'impressionist', '~> 1.6.1'
docker や CircleCI を導入する前は正常に作動していたので、database.yml の変更内容や追加した gem などを変更前と比較して、原因を探っていました。
しかし、エラー内容からは問題箇所の特定が難しく、検索したところ以下の記事がヒットし、試したところ直りました。
uninitialized constant ActiveSupport::ParameterFilter
ActiveSupport::ParameterFilterはRails6以降pr#34039によって移動されたクラスです。
impressionistのようにgemによってはrails5以前とrails6以降で追加するべきバージョンが違う場合があります。
Author And Source
この問題について(rspec実行時に "NameError:uninitialized constant ActiveSupport::ParameterFilter"), 我々は、より多くの情報をここで見つけました https://qiita.com/hidetoshi-tsubaki/items/908165df42cc1d5fb2e5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .