状況
ローカルでRuby on Rails Tutorialをやってる時に遭遇。
- チュートリアル通りのコマンド
rails generate controller Relationships
後にテストを書き込んでrails t
でエラー。 - ファイル(***_helper.rb)は存在する。
- ファイルの名前を変えると動く。元に戻すと同じエラー。
#エラーメッセージ
一部抜粋
~/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in `require': No such file to load -- relationships_helper.rb (LoadError)
~/.rvm/gems/ruby-2.6.3/gems/actionpack-5.2.3/lib/abstract_controller/helpers.rb:151:in `rescue in block in modules_for_helpers': Missing helper file helpers/relationships_helper.rb (AbstractController::Helpers::MissingHelperError)
結論
bundle update
追記
Gemfileの
gem 'rails', '~> 5.2.3'
の部分を下記に変更
gem 'rails'
その後、
bundle update
雑記
なんでファイル読み込んでくれなかったのか?謎
追記
bundle update
だけでは治らない。
- boosnap-load-path-cache,bootsnap-compile-cacheを削除しても治らない。
-
rails generate controller testgen
のすぐ直後にrails t
で同じエラー,前回治ったbundle update
で治らない。
→ 別の要因(時間経過?何らかのversionのアップデート?模索中)
結論に追記
- railsを最新版にしたら治った。
rails generate controller testgen
のすぐ直後にrails t
でもエラー起きない。 - バージョンの互換性部分に問題があった?バージョン管理を適当にしていたから起きたかも。