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版本而不用担心吗?
答案 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
解决了同样的问题