uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)一体これなんなん...
Rails 7.0.4.3 で rails new
したらエラーが発生...
初学者の方で、以下の手順で Rails アプリを作成しようとしてエラーが発生した方はいませんか?
rails _7.0.4.3_ new hello_app
もし次のようなエラーが出たら、本記事が解決の手助けになると思います!
投稿主の環境:
- Macbook Air(M3)
- ruby 3.2.7
🛑 エラー内容(一例)
/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/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 /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-7.0.4.3/lib/active_support/logger_thread_safe_level.rb:9:in `<module:ActiveSupport>'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-7.0.4.3/lib/active_support/logger_thread_safe_level.rb:8:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-7.0.4.3/lib/active_support/logger_silence.rb:5:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-7.0.4.3/lib/active_support/logger.rb:3:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/activesupport-7.0.4.3/lib/active_support.rb:29:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/railties-7.0.4.3/lib/rails/command.rb:3:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/railties-7.0.4.3/lib/rails/cli.rb:12:in `<top (required)>'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from <internal:/Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
from /Users/ユーザ名/.rbenv/versions/3.3.7/lib/ruby/gems/3.3.0/gems/railties-7.0.4.3/exe/rails:10:in `<top (required)>'
from /Users/ユーザ名/.rbenv/versions/3.3.7/bin/rails:25:in `load'
from /Users/ユーザ名/.rbenv/versions/3.3.7/bin/rails:25:in `<main>'
💡 結論:Rails 7.1.3 にアップグレードすれば解決!
Rails 7.0.4.3 は、最近の concurrent-ruby
などの Gem のアップデートにより、エラーが発生しやすくなっていルようです。
これを解決するには、Rails のバージョンを 7.1.3 にアップグレード するのが最も簡単な方法です。
🛠 解決方法(Rails 7.1.3 にアップグレード)
以下の手順を実施すれば、スムーズに Rails をインストールできます。
1. 既存の Rails をアンインストール
まず、現在の Rails をアンインストールします。
gem uninstall rails -a -x
gem uninstall railties -a -x
rbenv rehash
2. Rails 7.1.3 をインストール
gem install rails -v 7.1.3
rbenv rehash
インストールが完了したら、バージョンを確認:
rails -v
# 出力: Rails 7.1.3
3. 新しい Rails アプリを作成
rails _7.1.3_ new hello_app
これで エラーなく Rails アプリを作成できる はずです!🎉
📝 まとめ
手順 コマンド
Rails の削除 gem uninstall rails -a -x gem uninstall railties -a -x
Rails 7.1.3 のインストール gem install rails -v 7.1.3
Rails のバージョン確認 rails -v
新規プロジェクト作成 rails new hello_app
⚠️ よくある質問
Q1. Rails 7.0.4.3 を使いたい場合は?
concurrent-ruby のバージョンを 1.3.4 に固定すれば動く可能性があります。
gem uninstall concurrent-ruby -v 1.3.5
gem install concurrent-ruby -v 1.3.4
rbenv rehash
しかし、Rails 7.1 以降にアップグレードするのが 最も簡単な解決策 です!
理由はconcurrent-ruby以外のモジュールでもアップデートがある場合に同様の現象になってしまうかもしれないからです。
✅ まとめ
「Rails 7.0.4.3 で rails new したらエラーが出た!」という方は、
Rails を 7.1.3 にアップグレード すれば解決できます!🎉
これであなたも快適に Rails 開発を始められます! 🚀✨