#該当箇所
現場で使えるRuby on Rails5 速習実践ガイドChapter3-1-3
$ rails _5.2.1_ new taskleaf -d postgresql
でバージョン指定してアプリを作成したのにサーバを起動するとrails のバージョンが5.2.4.4になってしまいました。
#期待する動作
GemfileとGemfile.lockのバージョンを一致させて、サーバを起動するとrails のバージョンが5.2.1になること
#取り組んだこと
バージョンはGemfile.lockに記述されているため、見てみるとやはりrails のバージョンが5.2.4.4になっていました。それに対し、Gemfileは
gem 'rails', '~> 5.2.1'
とあり、なんでGemfileとGemfile.lockでバージョンが違うんだろう?と思いました。
調べていくうちに、原因はGemfileの中のgem ‘rails’, ‘~> 5.2.1’の部分だとわかりました。
gem ‘rails’, ‘~> 5.2.1’
はgem ‘rails’, ‘>= 5.2.1’, < 5.3.0'
を表すためGemfile.lockのバージョンが5.2.4.4になってしまっていたのです。
Gemfile.lockも5.2.1にするためにはGemfileでgem ‘rails’, ‘5.2.1’
でがっちり指定する必要がありました。
gem 'rails', '5.2.1'
に修正して、
$ bundle update
これで正しくバージョンが指定されました!