0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NameError: uninitialized constant Railsエラー

Posted at

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がコメントアウトされているというかなり初歩的なミスでした…。

config/application.rb
# 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ファイルに問題があるとは、エラー文からは推測もつきませんでした。
少し前に同ファイルをいじった記憶があるので、そこで恐らくコメントアウトしてしまっていたのだと思います。
役に立つか分かりませんが、どなたかに役立てば幸いです。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?