Ruby on Railsを勉強し始めて約3ヶ月。
先日やっと、就活に使うポートフォリオが完成。。。
ひと段落したので、Qiita投稿デビューも兼ねて、最も頭を抱えたデプロイ過程でのエラーについて記録を残しておく。
#発生したエラー
「The Ruby version you are trying to install does not exist on this stack.」
「You are trying to install ruby-2.5.1 on heroku-20.」
ざっくり翻訳してみると、
「あなたがインストールしようとしているRubyのバージョンはこのstackに存在しないよ。」
「あなたはruby-2.5.1をheroku-20にインストールしようとしているよ。」
どうやら、Ruby2.5.1はHeroku-20には対応していないバージョンらしい...。
#対応するRubyバージョンの確認
↑HerokuのHPで、Heroku-20に対応するRubyバージョンを調べてみたところ、
MRI:
2.6.7, Rubygems: 3.0.3.1
2.7.3, Rubygems: 3.1.6
3.0.1, Rubygems: 3.2.15
このように表記されている。(2021年6月17日時点)
#解決方法
確認したいずれかのRubyバージョンにアップデートする必要がある。
$ rbenv install --list //インストール可能なrubyのバーションを確認
$ rbenv install 2.7.3 //2.7.3がインストール可能だったので、バージョン指定してインストール
$ rbenv versions //インストールできたか確認
$ rbenv global 2.7.3 //2.7.3をデフォルトに適用
一応、Ruby2.7.3へアップデートできたが、このままでは対応するRailsのgemが入っていないため、Railsコマンドが使えない。
Railsのgemをインストールする。
$ gem update --system //gemのアップデート
$ gem install bundler //bundlerのインストール
$ gem install rails //Railsのインストール
$ rails --version //バージョンを確認
Rails 5.2.6
最後にGemfileの編集&bundleのアップデートも忘れずに。
ruby '2.7.3' //アップデートしたバージョンに書き換える
$bundle update //bundleをアップデート
これで完了!
#参考
・https://qiita.com/___xxx_/items/12c8ab953bc6aaeb8c24
・https://qiita.com/kamillle/items/5a7befd0ebad47378832
・https://mophie-blog.com/2020/08/29/the-rails-command-exists-in-these-ruby-versions/