Ruby Gemfile 中的版本

Ruby version in the Gemfile

Michael Hartl 的 Ruby on Rails Tutorial 使用 Gemfile 没有指定 Ruby 版本:所有应用程序中都缺少 ruby 关键字。

当我部署到 Heroku 时,我收到以下警告:

remote: ###### WARNING:
remote:        You have not declared a Ruby version in your Gemfile.
remote:        To set your Ruby version add this line to your Gemfile:
remote:        ruby '2.2.4'
remote:        # See https://devcenter.heroku.com/articles/ruby-versions for more information.

The tutorial says与包含这样一个显式 Ruby 版本号相关的成本超过了(微不足道的)好处,所以你现在应该忽略这个警告。主要问题是让您的示例应用程序和系统与最新的 Ruby 版本同步可能会带来巨大的不便"。

我想知道另一种选择是跟上 Heroku 的 Ruby 版本(目前大概是 2.2.4),正如书中似乎建议的那样,还是指定任何 Ruby 适合我的版本。换句话说,因为我在我的应用程序中使用 Ruby 2.2.1p85,所以添加 ruby "2.2.1", :patchlevel => "85" 可以使 Heroku 适应这个版本,或者我应该适应 Heroku 并按照建议添加 ruby '2.2.4'?

我正在使用 rvm 和具有特定 Ruby 版本的特定 gemset,没有其​​他原因,只是尝试使用尽可能接近教程的环境。真实情况下的最佳做法是什么?您是否建议使用最新的 Ruby 版本并将其包含在 Gemfile 中? Gemfile 可以省去 Ruby 版本吗?

请按照步骤解决 您可以通过命令

检查哪个ruby版本与您的应用相关联

heroku run "ruby -v"

最好使用 ruby 的默认版本 2.2.4 来解决您的问题。如果您的 ruby 版本比 2.2.4 旧,请升级它。

after checking/upgrading version 您可以在应用的 Gemfile 中使用 ruby 关键字来指定 Ruby.

的特定版本
source "https://rubygems.org"
ruby "2.2.4"

您将需要再次安装和更新捆绑器

$ gem install bundler
$ bundle update

这个命令:

heroku run rake db:migrate

解决了同样的问题