LoginSignup
0
0

More than 1 year has passed since last update.

[Rails]新しいバージョンに切り替わらないときの対処案

Posted at

Railsのバージョンを更新したのに、それを呼び出すことができなかった(古いバージョンのものが呼ばれてしまう)ので、私が実施した対処法を記します。
結論を先に申しますと、windowsの環境変数のPathにあるrubyの箇所を新しいものに修正したらRailsも新しいものが呼べたよ、となります。

状況(流れ)

Windows11を使っています。rubyやrailsなどはすでにPCにインストールしてありました。
新しいバージョンが出ていたので新しくインストールしていきます。
gitを更新したらバージョンを確認、
rubyを更新したらバージョンを確認、
railsを更新したらバージョンを確認、
あれ?できてない?

$ rails -v
Rails 6.1.4.1

Rails 7.0.4を入れたのに。。。
違う方法で確認

$ gem list rails
*** LOCAL GEMS ***
rails (7.0.4)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.5.0)

こっちではできています。
とりあえず新たなバージョンを指定してrails newをしてみます。

$ rails _7.0.4_ new hello_app -O --skip-bundle
C:/ruby/Ruby30/lib/ruby/3.0.0/rubygems.rb:281:in `find_spec_for_exe': can't find
 gem railties (= 7.0.4) with executable rails (Gem::GemNotFoundException)
        from C:/ruby/Ruby30/lib/ruby/3.0.0/rubygems.rb:300:in `activate_bin_path'
        from C:/ruby/Ruby30/bin/rails:23:in `<main>'

できません。
先ほどrubyを更新して3.2.1になっています。それはC:/ruby/Ruby32/にあるはずなのですが、それも呼ばれていないようです。呼ばれているのはC:/ruby/Ruby30/になっています。
改めてrubyのバージョンを確認。

$ ruby -v
ruby 3.2.1

rubyは新しいバージョンになっている。。
嫌な予感の中、railsコマンドでバージョンを指定しなければどうなるか確認してみます。

$ rails new hello_app
.
.
.

動きましたが、Gemfileを確認するとrubyもrailsも古いバージョンのものでした。
ちょっと頭の整理をしてみます。
$ ruby -v
$ gem list rails
$ gem info -e rails
では新しくなっている。

$ rails -v
$ rails new hello_app
では古いまま。
つまり、プロンプトでrailsコマンドを使うと、古いものが呼ばれるのだと推測しました。
ということはコマンドプロンプトでコマンドを実行したときは何を呼ぶのかをどこかで定義しているはず!
……どこで定義しているか分からず。。
とりあえず環境変数を確認してみるもrailsの項目は見当たりませんでした。
ただ、rubyへのパスがいままでのバージョンアップの履歴に合わせて複数登録されていました。古いのは使わんし、修正しておこうと、古いのを削除しました。
なぜかこの修正でrailsの新しいバージョンが呼ばれるようになりました。

$ ruby -v
ruby 3.2.1

$ rails -v
Rails 7.0.4.2

rails newでも成功し、バージョンを指定したrails _7.0.4_ newでも成功しました。

疑問と未解決

何が原因だったのか、本当はどのように解決したらいいのかご存じの方はご教授いただければ幸いです。

今回はよくわからない現象が、よくわからないまま解決してしまいました。
私には未知なものが多すぎて手に負えないというのが現状です。
rubyはどこにインストールするのかを決めていますが、railsの場合はどこにインストールされているのかわかりません。
たぶんですが、下記のような場所にインストールされていると思っています。
旧: C:/ruby/Ruby30/bin/rails
新: C:/Users/○○○/.gem/ruby/3.2.0
なんか気持ち悪いですが、どうしてこうなったのかわからないままです。

0
0
0

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