- RubyとRailsをバージョンダウンしたい方
- ローカルとグローバルでバージョンを分けたい方
- クライアントから古いバージョンのRailsを要求された方
- 既にRailsを使ったことがある方

こんにちは!
最近クライアントから古いVerのRailsで要求された(@new_design)です。
今回はRubyとRailsのバージョンをダウンする方法について解説していきます。
例えば今6系のRailsを使っているけど、制作するアプリによっては5系のRailsを使いたいというケースがあるかと思います。
要するにPC内(グローバル)のRailsのバージョンをいじらずに、該当するアプリ(ローカル)のRubyやRailsを変えたいという時ですね。
次の章から紹介する方法は『rbenv』と『Homebrew』がインストールされていることが前提で進みます。必ずこの2つを準備しておいてください。
①rbenv :Rubyのバージョン管理するもの。アプリによってRubyのバージョンを切り替えたい場合に必要です。
②Homebrew:Macのパッケージを管理するもの。
まずは現在使用しているRubyとRailsのバージョンを確認します。この時点でアプリのディレクトリを作成する必要はありません。
ターミナルで下記コマンドを順番に実行しましょう。
rails -v
ruby -v
そうすると下記の結果が返ってきましたね。
Rails 6.0.3.3
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
これがグローバル(PC上)で管理されているRails(上)とRuby(下)のバージョンです。今回はこれらを5系の古いバージョンに落としたいと思います。
古いバージョンのRubyをインストールしていきます。
Ruby on Railsと言うからには、Railsを動かすにはRubyが必要になります。まずはrbenvでインストールできるRubyのバージョンを確認します。
下記コマンドをターミナルで実行しましょう。
rbenv install --list
そうすると下のような結果が返ってきます。結果は皆さんの環境次第で変わりますのでご注意ください。
2.5.8
2.6.6
2.7.1
jruby-9.2.12.0
maglev-1.0.0
mruby-2.1.1
rbx-5.0
truffleruby-20.1.0
truffleruby+graalvm-20.1.0
ここで制作したいアプリのディレクトリを作りましょう。ディレクトリの作成は『mekdir』(make directory)でしたね。
今回はアプリ名をDemoappにしましたが、皆さんが行うときは自由に変えてくださいね。
mkdir Demoapp
そして『cd』コマンドでディレクトリを移動します。
cd Demoapp
ここでようやくRubyをインストールしていきます。先程確認した通り、『2.5.8』バージョンのRubyをインストールします。
下記コマンドを実行してください。必ず作成したディレクトリにいることを確認してくださいね!
rbenv install 2.5.8
そうするとインストールが始まります。
Downloading openssl-1.1.1g.tar.gz...
1通り処理が完了したら、下記コマンドを実行しましょう。今選択されているRubyのバージョン(*がついている)を確認できます。
rbenv versions
結果はこちらです。現在『2.6.5』が選択されています。
system
2.2.0
2.5.1
2.5.8
* 2.6.5 (set by /Users/ユーザー名/.rbenv/version)
今回は『2.5.8』に切り替えたいので、下記コマンドを順番に実行しましょう。
rbenv local 2.5.8
rbenv rehash
そしてもう一度バージョンを『rbenv versions』で確認する。結果は下記の通りで古いバージョンに切り替わりました。
system
2.2.0
2.5.1
* 2.5.8 (set by /Users/ユーザー名/CARAVAN/.ruby-version)
2.6.5
ここまででRubyのバージョンダウンに成功しました。残りはRailsですね。
続いてRailsをバージョンダウンしていきます。今回は『6.0.3.3』から『5.2.3』に下げる想定です。
必ず先程作成したディレクトリにいることを確認しましょう!!アプリによってバージョンを変えることが目的なので、ルートディレクトリで処理すると全体でバージョンダウンされるので。
まずは下記コマンドをターミナルで実行します。ここから処理が始まりますので、気長に待ちましょう。
gem install rails -v 5.2.3
これで完成です。ついでにアプリの雛形とデータベースをpostgreSQLに切り替えましょう。(デフォルトでDBはSQliteに設定されています。)
postgreSQLのインストール方法は下記記事の最初の項目で解説していますので、参考にしてくださいね。
postgreSQLをインストールできたら下記コマンドを実行してください。
rails _5.2.3_ new . -d postgresql --skip-bundle
- newでアプリの雛形を作成
- -dでデータベースにpostgreSQLを作成
- –skip-bundleはgemのインストールを後回しにする
処理が終わったらRailsのバージョンを確認して、バージョンダウンされていることを確認しましょう。
rails -v
最後にpostgreSQLのデータベースを作成します。ここをやらないと『rails -s』でサーバーを起動してもエラーがでます。
下記コマンドを順番に実行しましょう。
rails db:create
rails db:migrate
rails db:seed
これでデータベースができました。最後に『rails -s』コマンドでサーバーを起動しましょう。

わーい。無事サーバーが起動しましたね。
ちなみにルートディレクトリでRubyとRailsのバージョンを確認してみましょう。
ruby -v
rails -v
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
Rails 6.0.3.3
よし。グローバルは変わっていませんね!狙い通り。
コメントを残す