Gemfile中的Ruby版本

时间:2016-02-29 20:04:50

标签: ruby-on-rails deployment railstutorial.org 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版本而不用担心吗?

2 个答案:

答案 0 :(得分:4)

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

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

heroku run "ruby -v"

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

检查/升级版本后

您可以使用应用程序ruby中的Gemfile关键字指定特定版本的Ruby。

source "https://rubygems.org"
ruby "2.2.4"

您需要再次安装和更新bundler

$ gem install bundler
$ bundle update

答案 1 :(得分:0)

此命令:

heroku run rake db:migrate

解决了同样的问题