📣

初めてのエラーメッセージ

に公開

Railsチュートリアルを進めていたところ、以下のエラーに遭遇しました。
同じようなエラーに遭遇した方の参考になれば嬉しいです。

$ rails _7.0.4.3_ new toy_app
/home/vscode/.gem/gems/activesupport-7.0.4.3/lib/active_support/logger_thread_safe_level.rb:12:in `<module:LoggerThreadSafeLevel>': uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

    Logger::Severity.constants.each do |severity|
          ^^^^^^^^^^
        from /home/vscode/.gem/gems/activesupport-7.0.4.3/lib/active_support/logger_thread_safe_level.rb:9:in `<module:ActiveSupport>'
        from /home/vscode/.gem/gems/activesupport-7.0.4.3/lib/active_support/logger_thread_safe_level.rb:8:in `<top (required)>'
        from <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'

エラーメッセージには uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError) とあり、どうやら Rails 7.0.4.3 が最近の concurrent-ruby などのGemのアップデートに対応できておらず、互換性エラーが出ているようです。

解決方法:
Railsのバージョンをアップグレードすることで解決しました。
*今回7.1.3を使用。

  1. 既存のRailsをアンインストール
    gem uninstall rails -a -x
    rbenv rehash
    
  2. rails 7.1.3をインストール
    gem install rails -v 7.1.3
    rbenv rehash
    
  3. バージョン確認
    rails -v
    
  4. 無時に起動!
    @kenwilldoit ➜ ~/environment $ rails _7.1.3_ new toy_app
       create  
       create  README.md
    

今回のトラブルを通して、Gemのバージョン依存や互換性の重要さを学びました。
引き続き、Rails学習中に「つまづいたこと」「学んだこと」などを投稿していく予定です!

Discussion