rake db:migrateをすると、表題のエラーが発生しました。
rake aborted!
NameError: uninitialized constant Rails
/var/www/rails/men-skincare/Rakefile:6:in `<top (required)>'
/home/ec2-user/.rbenv/versions/2.7.0/bin/bundle:23:in `load'
/home/ec2-user/.rbenv/versions/2.7.0/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)
NameErrorに関して、クラスが定義されていない場合などは遭遇したことがあったのですが、RailsがNameErrorになっているのは初めてでした。
対処法
結論としては、config/application.rbファイルにてRailsのrequireがコメントアウトされているというかなり初歩的なミスでした…。
# require "rails"
# # Pick the frameworks you want:
# require "active_model/railtie"
# require "active_job/railtie"
# require "active_record/railtie"
# # require "active_storage/engine"
# require "action_controller/railtie"
# require "action_mailer/railtie"
# # require "action_mailbox/engine"
# # require "action_text/engine"
# require "action_view/railtie"
# require "action_cable/engine"
# require "sprockets/railtie"
# require "rails/test_unit/railtie"
これらのコメントを全て外すことで解決しました。
以下はエラーメッセージの内容から確認したことになります。
まずRakefileの内容を確認しました。
ただこちらは自動生成されるファイルのため、特に問題無し。
次にrailsが起動していないのかと思い、「bundle exec rails -v」コマンドを打つときちんとrailsのバージョンが表示されたので問題無し。
そしてエラー分に「See full trace by running task with --trace」と記載があったので、--traceをつけて再度実行したのですが、同じエラーが表示されました。
おわりに
まさかapplication.rbファイルに問題があるとは、エラー文からは推測もつきませんでした。
少し前に同ファイルをいじった記憶があるので、そこで恐らくコメントアウトしてしまっていたのだと思います。
役に立つか分かりませんが、どなたかに役立てば幸いです。