@ledsun blog

Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

Rails 5.2からGemfileと.ruby-versionに期待するRubyのバージョンを記載するようになった

いくつかののRailsアプリケーションを触っていると、アプリケーションによってGemfileにRubyのバージョンが書かれていたり書かれていなくて不思議でした。 Rails 5.2からはbin/rails newしたときに、作成するGemfileにRubyのバージョンを記載するようになりました。

github.com

つまり、GemfileにRubyのバージョンが書かれていないのは、そのアプリケーションがRails 5.1 以前のバージョンで作られたからでした。

GemfileにRubyのバージョンが書かれるようになったのはHerokuで自動的に環境を作成するさいに、Rubyのバージョンを決定するためのようです。 .ruby-versionの方は、rbenv/rvmでRubyのバージョンを決定するためのようです。

重複しているのはどうなの?と思いますが

https://github.com/rails/rails/pull/30016#issuecomment-321400071

I think we've crossed wires here a bit. Given that I originally requested this feature, perhaps I was unclear with the rational. I'm fine with the fact that the version is duplicated between .ruby-version and Gemfile. Just as long as they're set by default.

If at some point rbenv learns to read the version from a Gemfile, then we can drop the .ruby-version. But until that I'd like that to stay.

rbenvがGemfileからRubyのバージョンを読み取ってくれないので、両方使っているそうです。