rvm 未在生产服务器上读取 .ruby-version

rvm is not reading .ruby-version on production server

我有一个 rails 5.1 应用程序,这是我的 .ruby-version

ruby-2.5.0

这是 rvm 列表的输出

rvm rubies

   ruby-2.3.1 [ x86_64 ]
=* ruby-2.4.0 [ x86_64 ]
   ruby-2.5.0 [ x86_64 ]

当我 cd 到 "current"(使用 Capistrano 部署)时,我和我 运行 以下内容:

RAILS_ENV=production bundle exec ruby --version

我明白了

ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

我认为 .ruby-version 是触发使用哪个 ruby 版本的原因。我做错了什么?

如果您计划使用 2.5..0 作为应用程序的默认 ruby 版本 运行 在服务器上

rvm use --default 2.5.0

它给你的是 2.4.0,因为它设置为默认和当前版本,即 =* 表示它将被使用。

此外,由于您正在使用 capistrano 进行部署并且正在使用 rvm,因此您应该考虑使用此 gem。

https://github.com/capistrano/rvm

根据文档,您可以明确设置 ruby 版本,它也可能是您的服务器 - 例如,如果您使用的是 nginx,则必须在 nginx 配置文件中明确说明您的路径 ruby 版本 - 但这完全取决于您的生产配置

https://rvm.io/rubies/default

$ rvm --default use 2.1.1

$ ruby -v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]