All Ruby versions show version x.x.0 in the path instead of actual patch number which makes it seem like the wrong version is being used
This question likely gets asked at least once a month.
The path that we use for Ruby versions does not include the full version, but instead ends with .0 For example someone using Ruby 2.6.1 might see a path that looks like this:
/app/vendor/bundle/ruby/2.6.0/gems/
Or someone using Ruby 2.4.5 might see a path that looks like this:
/app/vendor/bundle/ruby/2.4.0/gems/
This is totally expected and does not indicate any problems. All versions of Ruby 2.6.x will use a folder name of 2.6.0 etc.
While this is expected behavior from the buildpack, it is frequently confusing to customers. We could reduce support burden and customer surprise by making the path contain the actual teeny/patch version.
This version in the path actually comes directly from building a Ruby binary, it's not something that Heroku is specifically doing.
One way to possibly "solve" the issue is to prefix the path with a ruby/x.y.z. The downside is that it makes for somewhat redundant paths with seemingly conflicting information. The upside is that every path would be guaranteed to have at least one copy of the correct exact version being used.
There's also the stability question of how many people (if any) are relying on the exact path being used currently and how would changing it affect apps.