[英]Heroku deploy “Invalid RUBY_VERSION specified”, worked yesterday
[英]Can't deploy Rails app to Heroku, “Invalid RUBY_VERSION”
我正在尝试将我的应用程序推送到Heroku,但我无法通过此错误:
Delta compression using up to 2 threads.
Compressing objects: 100% (1554/1554), done.
Writing objects: 100% (1652/1652), 23.93 MiB | 369 KiB/s, done.
Total 1652 (delta 859), reused 0 (delta 0)
-----> Ruby/Rails app detected
!
! Invalid RUBY_VERSION specified: There-was-an-error-in-your-Gemfile,-and-Bundler- cannot-continue.
! Valid versions: ruby-2.0.0, ruby-1.9.3, ruby-1.9.2, ruby-1.8.7, ruby-1.9.3-jruby- 1.7.0, ruby-1.8.7-jruby-1.7.0, ruby-1.9.3-jruby-1.7.1, ruby-1.8.7-jruby-1.7.1, ruby-1.9.3-rbx-2.0.0dev, ruby-1.8.7-rbx-2.0.0dev
!
! Push rejected, failed to compile Ruby/Rails app
To git@heroku.com:myapp.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:myapp.git'
我正在运行ruby 1.9.3p448。 我按照这里的步骤操作,我的Gemfile顶部包括:
source 'http://rubygems.org'
ruby '1.9.3'
gem 'rails', '3.2.13'
当我运行“heroku run'ruby -v'”时,它返回ruby 1.9.2p290。 这是怎么回事?
编辑:这是我的整个Gemfile:
source 'http://rubygems.org'
ruby '1.9.3'
gem 'rails', '3.2.13'
gem 'pg'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'devise'
gem 'nokogiri'
gem 'i18n'
gem 'paperclip'
gem 'kaminari'
gem 'rest-client'
require 'addressable/uri'
group :development do
gem 'better_errors'
end
你的Gemfile
有一个错误,行require 'addressable/uri'
。 你不能在Gemfile
使用require
。 加载路径尚未设置,因此您将获得Bundler捕获的LoadError
并生成错误消息。
Heroku试图使用bundle platform --ruby
来确定你想要使用的Ruby版本,但是没有正确检测错误条件并将错误消息视为版本。 这显然不是有效版本,因此它会产生您看到的错误。
我猜你正在使用require
因为要使用Addressable gem需要可addressable/uri
或addressable/template
(或两者),你不能只使用require 'addressable'
。 在这种情况下,您可以使用Bundler的:require
选项:
gem 'addressable', :require => 'addressable/uri'
如果确实需要多个东西,可以使用数组:
gem 'addressable', :require => ['addressable/uri', 'addressable/template']
只是想知道这是否会改变你的情况,因为你的Gemfile几乎看起来像我的,但是对于这些变化。
1)当然,假设你在你的Rails Root文件夹中,而你的less Gemfile
就是上面的实际文件。 您在更改后也确实bundle
了。
2)更改source 'https://rubygems.org'
3) 可选的 Heck,尝试将版本切换到ruby '2.0.0'
只是为了通过它。
4)我认为这也是必要的:
gem 'rails_12factor'
所有这些技巧应该至少使它起作用。
编辑
为什么require 'addressable/uri'
? 删除它并添加gem 'addressable'
代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.