rails newでのバージョン指定エラー

Railsの環境構築が完了し、無事サーバを起動することができました。

しかし、よく見るとRails version 5.2.5で作成したいのに、Rails version 5.2.6になっていました。

エラー内容

書籍を進めるにあたり、任意のプロジェクト内において、railsのバージョン指定してrails newコマンドを実行したが、指定したものと異なるバージョンでインストールされてしまいました。

実行したコマンド

% rails _5.2.5_ new taskleaf 

その後サーバーを起動すると、Rails version 5.2.6が適用されていました。

確認

インストール済みのrailsバージョンを確認してみます。

% rails -v
Rails 5.2.6

やはり、5.2.6になってしまっています。

一応、使用できるバージョンも確認してみました。

% gem list rails
*** LOCAL GEMS ***

rails (5.2.6, 5.2.5)

今回使用したいバージョン5.2.5があることが確認できました。

原因

原因はGemfileです。

Gemfileにはインストールするrailsのバージョンが記載されています。

rails newコマンドを実行すると、Gemfileも自動的に読み込まれてしまいます。

作成したアプリのGemfileを確認すると、

gem ‘rails’, ‘~> 5.2.5’

となっていました。

これは「5.2.5以上のバージョンをインストールする」

という意味なので、結果的にバージョン5.2.6がインストールされていました。

対策

Gemfileを読み込ませずに「rails new」

※自分の場合は一度、作成したアプリを削除しました。

まずはGemfileを読み込ませずにrails newします。

下記の様に、—-skip-bundleと記述します。

% rails _5.2.5_ new taskleaf --skip-bundle

Gemfileを編集

変更前) gem 'rails', '**~>** 5.2.5'
変更後) gem 'rails', '**=** 5.2.5'

Gemfileを開いて、インストールするrailsのバージョンを5.2.5に固定します。

bundle installを実行

作成されたアプリのディレクトリに移動して、bundle installを実行します。

% bundle install

バージョンを確認

指定したバージョンをインストール出来ているか確認します。

% rails -v
Rails 5.2.5

無事インストール完了です。

サーバを起動し、ブラウザも確認してみるとRails version 5.2.5になっていました。

参考文献

https://qiita.com/nozomi_nozomi/items/01f9471c1c82faf63cb3

https://techtechmedia.com/rails-new-version-error/