【Ruby on Rails】The `rails' command exists in these Ruby versions エラーの解決方法

【Ruby on Rails】The `rails' command exists in these Ruby versions エラーの解決方法

2分で読める テック
最終更新:

Railsをインストールして rails --version を実行したときに、次のエラーが出て困ったことがあります。

The `rails' command exists in these Ruby versions:
  2.x.x

「railsコマンドはインストールしたはずなのに使えない」という状況です。原因と解決方法を整理します。

開発環境

  • Ruby: 2.5.1
  • Rails: 6.0.0

エラーの原因

このエラーは、rbenvやrvmでRubyのバージョンを切り替えた後、新しいRubyバージョン向けにgemが入っていないときに発生します。

rbenvやrvmはRubyのバージョンを切り替える仕組みですが、gemはRubyのバージョンごとに管理されています。そのため、新しいバージョンに切り替えると、以前のバージョンにインストールしていたgemは使えなくなります。

エラーメッセージの意味は「railsコマンドは別のRubyバージョンには存在するが、今使っているバージョンにはインストールされていない」ということです。

解決方法

現在使用しているRubyバージョンにrailsを再インストールします。

$ gem install rails

インストール完了後、コマンドが使えるか確認します。

$ rails --version
Rails 6.0.0

rbenvを使っている場合、gemをインストールした後に rbenv rehash が必要なこともあります。

$ rbenv rehash

まとめ

rbenv / rvm でRubyのバージョンを切り替えた後は、必要なgemをそのバージョン向けに再インストールする必要があります。バンドラーを使っている場合も、bundle install を改めて実行しておくとよいです。

Rubyのバージョン管理とgem管理は別物として理解しておくと、同種のエラーに遭遇したときにすぐ原因を特定できます。

質問・リクエストを送る

記事についての質問や、取り上げてほしいテーマがあればお気軽にどうぞ。いただいた質問はブログ記事として回答し、Q&Aページで公開することがあります。